1

C ++でUINT32カラーフォーマットをAaBbGgRrからAaRrGgBbに変換しようとしています。Aa = アルファ、Bb = 青、Gg = 緑、Rr = 赤。変換とは、Bb と Rr の値を切り替えることを意味します。誰かが私がそれを達成する方法を知っていますか?

4

1 に答える 1

3

これを実現するには、マスクとビット シフトを使用できます。

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
于 2013-09-24T17:59:36.300 に答える