Рассчитать RGB Int из цвета в C # - PullRequest
       1

Рассчитать RGB Int из цвета в C #

0 голосов
/ 23 сентября 2019

Я бы хотел воспроизвести то, что этот сайт делает на C #

Это то, что я пытался:

Color whiteColor = Color.White;
int intWhiteColor = whiteColor.ToArgb();

Вот что я получил: -1

Это то, что я ожидал: 16777215

Я пытался найти почти все, что мог придумать, но не смог найти то, что хотел.

У этого есть высокая вероятность быть дубликатом, и я действительно извиняюсь, пожалуйста свяжите меня, если так.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Простая битовая арифметика будет делать:

 int intColor = (redColor.R << 16) | (redColor.G << 8) | (redColor.B);

пожалуйста, обратите внимание, что Color.Red имеет R = 255; G = 0; B = 0 (чистый красный цвет) и, таким образом,

 int intColor == 16711680

Когда Color.White имеет R = 255; G = 255; B = 255 и, таким образом,

 int intColor == 16777215
0 голосов
/ 23 сентября 2019

ToArgb() возвращает 32-разрядное целое число, то есть 4 байта, в которых каждый байт соответствует альфа, красному, зеленому и синему.Таким образом, для «красного» это будет

FF FF 00 00

, что переводится в десятичную -65,536 (я не уверен, почему вы получили -1).То, что вы хотите, это что-то вроде этого:

string hexcode = string.Format("{0:X2}{1:X2}{2:X2}", redColor.R, redColor.G, redColor.B);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...