Я пытаюсь преобразовать цветовой формат UINT32 из AaBbGgRr в AaRrGgBb в c ++. Aa = альфа, 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
Других решений пока нет …