在 C# 中从颜色计算 RGB Int



我想重现这个网站在 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.WhiteR = 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);

最新更新