Ответ 1
Color myColor = Color.FromArgb(255, 181, 178);
string hex = myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2");
У меня есть R: 255 G: 181 B: 178, и я работаю на С# (для WP8, если быть более конкретным)
Я хотел бы преобразовать это в шестнадцатеричный номер для использования в качестве цвета (чтобы установить цвет пикселя записиableBitmap). Я делаю следующее:
int hex = (255 << 24) | ((byte)R << 16) | ((byte)G << 8) | ((Byte)B<<0);
Но когда я это делаю, я просто становлюсь синим.
Любые идеи, что я делаю неправильно?
Кроме того, чтобы отменить это, чтобы проверить значения RGB, я собираюсь:
int r = ((byte)(hex >> 16)); // = 0
int g = ((byte)(hex >> 8)); // = 0
int b = ((byte)(hex >> 0)); // = 255
Color myColor = Color.FromArgb(255, 181, 178);
string hex = myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2");
Вы можете использовать более короткий строковый формат, чтобы избежать конкатенаций строк.
string.Format("{0:X2}{1:X2}{2:X2}", r, g, b)