我将RGB颜色存储为uint。我可以使用按位左和按位或运算符在RGB值中创建这个,如下所示:
colour = r<<16 | g<<8 | b;
我想做相反的事情。我有最终的数字,我想要r,g和b值。有谁知道怎么做?
答案 0 :(得分:15)
r = (colour >> 16) & 0xff;
g = (colour >> 8) & 0xff;
b = colour & 0xff;
答案 1 :(得分:7)
这样的事情:
r = ( colour >> 16 ) & 0xFF;
g = ( colour >> 8 ) & 0xFF;
b = colour & 0xFF;
假设8位组件值。按位和十六进制0xFF
掩码仅为每个组件选择8位。
答案 2 :(得分:5)
你使用shift,然后&amp;运算符掩盖不需要的位:
r = color >> 16;
g = (color >> 8) & 255;
b = color & 255;
可替换地:
b = color & 255;
color >>= 8;
g = color & 255;
r = color >> 8;