我正在尝试使用以下代码将RGB值转换为十六进制格式:
int ColorValue = Color.FromName("mycolor").ToArgb();
string ColorHex = string.Format("{0:x6}", ColorValue);
colorHex
值喜欢这种格式ffffff00
,但我需要更改它:0x0000
。我该怎么做?
祝你好运
我是c#form application的新手。
答案 0 :(得分:3)
只需在格式字符串中添加0x
部分:
// Local variable names to match normal conventions.
// Although Color doesn't have ToRgb, we can just mask off the top 8 bits,
// leaving RGB in the bottom 24 bits.
int colorValue = Color.FromName("mycolor").ToArgb() & 0xffffff;
string colorHex = string.Format("0x{0:x6}", colorValue);
如果您想要大写十六进制值而不是小写,请改用"0x{0:X6}"
。
答案 1 :(得分:1)
如果只想要定义颜色RGB部分的3个字节,可以试试这个
Color c = Color.FromName("mycolor");
int ColorValue = (c.R * 65536) + (c.G * 256) + c.B;
string ColorHex = string.Format("0x{0:X6}", ColorValue);