Преобразование из RGB ints в Hex
У меня есть R: 255 G:181 B: 178, и я работаю в C# (для WP8, если быть более конкретным)
Я хотел бы преобразовать это в шестнадцатеричное число для использования в качестве цвета (чтобы установить цвет пикселя WriteableBitmap). Я делаю следующее:--3-->
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
4 ответов
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)
приветствую собратьев,
//Red Value
int integerRedValue = 0;
//Green Value
int integerGreenValue = 0;
//Blue Value
int integerBlueValue = 0;
string hexValue = integerRedValue.ToString("X2") + integerGreenValue.ToString("X2") + integerBlueValue.ToString("X2");