我四处寻找如何将一些颜色代码转换为纯RGB(255,255,255)。我有这样的一些像颜色转换
5953244 Yellow
12868826 Pink
12356730 Pale Blue
5758835 Green
我真的不知道如何利用这个号码,并将其加工成普通RGB或什么样的RGB类型都是。
我四处寻找如何将一些颜色代码转换为纯RGB(255,255,255)。我有这样的一些像颜色转换
5953244 Yellow
12868826 Pink
12356730 Pale Blue
5758835 Green
我真的不知道如何利用这个号码,并将其加工成普通RGB或什么样的RGB类型都是。
一个int是大到足以容纳一个ARGB HTML颜色代码值或任何顺序(RGBA,BGR),并且int值本身不如其包含的单个字节重要。由于通道位于不同的字节,因此不同的颜色空间需要不同的按位操作。以下是适用于RGB
和ARGB
的示例。
#define R(rgb) ((rgb) >> 16 & 0xFF)
#define G(rgb) ((rgb) >> 8 & 0xFF)
#define B(rgb) ((rgb) & 0xFF)
int main(int argc, char *argv[])
{
int pale_blue = 5953244;
printf("\nR: 0x%02X G: 0x%02X B: 0x%02X\nR: %03d G: %03d B: %03d",
R(pale_blue), G(pale_blue), B(pale_blue),
R(pale_blue), G(pale_blue), B(pale_blue));
}
输出:
R:0x5A G:0xD6 B:的0xDC
R:090 G:214 B:220
我无法抗拒!说:非常好! – sidyll
惊人的!谢谢 – DigitalVanilla
@ nathan-day它很奇怪,它适用于绿色和粉红色(不是真的粉红色,但非常接近),但其他两个是错误的。淡蓝变成褐色,黄变成纯青色。我真的不知道什么样的int color system,这是主要的问题。这来自Windows上的XML。我没有其他线索:( – DigitalVanilla
这取决于这些都是什么样的颜色代码,如果他们是在正常情况下显示为十六进制,那么你可以做这样的事情
red = (c>>16)&0xff;
green = (c>>8)&0xff;
blue = c&0xff;
超出我的预期,TNX :) – DigitalVanilla
只需在您的头文件中包含以下行:
#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1];
然后你可以从任何地方像这样称呼它:
UIColor *myBrightBlueColour = RGB(0,186,255);
希望有所帮助。
参考此链接转换成十六进制编码到的UIColor:http://www.touch-code-magazine.com/web-color-to-uicolor-convertor/
我愿意接受所有的答案,因为它们是有效的,但我只能一个:( – DigitalVanilla