簡體   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