C# 从RGB整数转换为十六进制

C# 从RGB整数转换为十六进制,c#,bitmap,bit-shift,C#,Bitmap,Bit Shift,我拥有的是R:255G:181B:178,我在C#工作(更具体地说,是WP8) 我想将其转换为十六进制数用作颜色(设置可写位图的像素颜色)。我现在做的是: int hex = (255 << 24) | ((byte)R << 16) | ((byte)G << 8) | ((Byte)B<<0); 请尝试以下方法: using System.Drawing; Color myColor = Color.FromArgb(255, 181, 17

我拥有的是R:255G:181B:178,我在C#工作(更具体地说,是WP8)

我想将其转换为十六进制数用作颜色(设置可写位图的像素颜色)。我现在做的是:

int hex = (255 << 24) | ((byte)R << 16) | ((byte)G << 8) | ((Byte)B<<0);
请尝试以下方法:

using System.Drawing;
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)

使用字符串插值,可以将其写成:

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

问候人类同胞们

//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");
您可以为此使用库:

using ColorHelper;
RGB rgb = new RGB(100, 0, 100);
HEX hex = ColorConverter.RgbToHex(rgb);

例如,CSS中使用了一种十六进制格式的颜色。你是这个意思吗?例如白色->FFFFFF,蓝色->0000FF?你说的“只是变蓝”是什么意思?展示你的期望和你得到的。。。(即,您当前的代码和值将给出FFFFB5B2)我的意思是,没有得到任何颜色:r:255,g:181,b:178应该是(浅粉色),我只得到0000FF(蓝色)您是否尝试将类型转换更改为
int
而不是
byte
?例如:
inthex=(255字节应该可以…
((255或只使用字节上的ToString(“X2”)部分)你说“将其转换为十六进制数”,但十六进制不是数字,而是用来表示数字的字符串。哦..对不起,我猜十六进制只是用来让用户更容易看到。但是位图的像素数组是int[],因此我需要将数字设置为int(即,找出如何添加R、G、B)哪个WriteableBitmap的属性/方法需要此int?我只是尝试设置WriteableBitmap。像素数组项…我设法找到了它(我想..)。根据上面的注释,我只是更改了括号;)
using ColorHelper;
RGB rgb = new RGB(100, 0, 100);
HEX hex = ColorConverter.RgbToHex(rgb);