繁体   English   中英

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

[英]Converting UINT32 color format from AaBbGgRr to AaRrGgBb

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM