Есть ли способ изменить альфа 24-битного растрового изображения, используя байтовое поле?

Я пытаюсь сделать это, корректируя шестнадцатеричные значения растрового изображения, однако, насколько я могу судить, нет альфа-байта. Смогу ли я отрегулировать формат файла, чтобы учесть альфа-байт, или мне нужно будет отрегулировать яркость путем репликации "альфа-изменения" с использованием байтов rgb?

Любая помощь в этом отношении будет принята с благодарностью.

Спасибо

1 ответ

Решение

Получить отдельный компонент цвета (компонент 6 битов)

#define RGBA_R(x)   (unsigned char)((x) & 0x0000003f)
#define RGBA_G(x)   (unsigned char)(((x) >> 6) & 0x0000003f)
#define RGBA_B(x)   (unsigned char)(((x) >> 12) & 0x0000003f)
#define RGBA_A(x)   (unsigned char)(((x) >> 18) & 0x0000003f)

сформировать 24-битное значение цвета

#define COLOR24(r, g, b, a) (((r) & 0x3f) | (((g) & 0x3f) << 6) | (((b) & 0x3f) << 12) | (((a) & 0x3f) << 18))
Другие вопросы по тегам