将UINT32颜色格式从AaBbGgRr转换为AaRrGgBb

时间:2013-09-24 17:47:46

标签: c++ c colors uint uint32

我正在尝试将AINTBbGgRr中的UINT32颜色格式转换为c ++中的AaRrGgBb。 Aa = Alpha,Bb =蓝色,Gg =绿色Rr =红色。通过转换,我的意思是切换Bb和Rr的值。有人知道我怎么能做到这一点吗?

1 个答案:

答案 0 :(得分:2)

您可以使用掩码和位移来实现此目的:

uint32_t newValue = oldValue;

newValue = newValue & 0xFF00FF00; // open new space to insert the bits
newValue = ((oldValue & 0xFF)<< 16) | newValue; // change BB

newValue = ((oldValue & 0x00FF0000) >> 16) | newValue; // Change RR