web-dev-qa-db-ja.com

RGB intから16進数への変換

私が持っているのはR:255 G:181 B:178で、C#で作業しています(より具体的にはWP8の場合)

これを16進数に変換して、色として使用します(WriteableBitmapのピクセル色を設定します)。私がしていることは次のとおりです:

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
18
Toadums
Color myColor = Color.FromArgb(255, 181, 178);

string hex = myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2");
33
NoPyGod

より短い文字列形式を使用して、文字列の連結を回避できます。

string.Format("{0:X2}{1:X2}{2:X2}", r, g, b)
5
Andreas

文字列補間を使用すると、これは次のように書くことができます。

$"{r:X2}{g:X2}{b:X2}"
3
huysentruitw

仲間の人間、

//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");
0
Nelson Martins