1
我想將C++中的UINT32顏色格式從AaBbGgRr轉換爲AaRrGgBb。 Aa = Alpha,Bb =藍色,Gg =綠色Rr =紅色。通過轉換我的意思是切換Bb和Rr的值。有人知道我能做到嗎?將UINT32顏色格式從AaBbGgRr轉換爲AaRrGgBb
我想將C++中的UINT32顏色格式從AaBbGgRr轉換爲AaRrGgBb。 Aa = Alpha,Bb =藍色,Gg =綠色Rr =紅色。通過轉換我的意思是切換Bb和Rr的值。有人知道我能做到嗎?將UINT32顏色格式從AaBbGgRr轉換爲AaRrGgBb
你可以用面膜和比特移位來實現:
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
謝謝這個偉大工程。 – Tobbi