Есть ли способ изменить альфа 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))