我四處尋找如何將一些顏色代碼轉換爲純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