我想重现这个网站在 C# 中所做的
这是我尝试过的:
Color whiteColor = Color.White;
int intWhiteColor = whiteColor.ToArgb();
这是我得到的:-1
这就是我所期待的:16777215
我尝试搜索几乎所有我能想到的东西,但最终找不到我想要的东西。
这很有可能是重复的,我真的很抱歉,如果是这样,请链接我。
一个简单的位算术就可以了:
int intColor = (redColor.R << 16) | (redColor.G << 8) | (redColor.B);
请注意,Color.Red
具有R = 255; G = 0; B = 0
(纯红色(,因此
int intColor == 16711680
当Color.White
有R = 255; G = 255; B = 255
,因此
int intColor == 16777215
ToArgb()
返回一个 32 位整数,即 4 个字节,其中每个字节对应于字母、红色、绿色和蓝色。因此,对于"红色",它将是
FF FF 00 00
转换为十进制 -65,536(我不确定你为什么得到 -1(。你想要的是这样的内容:
string hexcode = string.Format("{0:X2}{1:X2}{2:X2}", redColor.R, redColor.G, redColor.B);