Итак, я сделал проект по стеганографии изображений для 32-битных изображений PNG. Сегодня я решил добавить поддержку 24-битных изображений, таких как gif и bmp. Я проверил их свойство битовой глубины, которое говорит 24 бит. Когда я извлек значение пикселя, я заметил, что это подписанное 32-битное целое число. и первые 8-битовые (альфа-каналы или биты передачи) установлены на «1».Почему изображение с 24-разрядной глубиной имеет 32-битные значения для пикселей?
Почему 24-битные изображения представлены с 32-битными значениями?
PS: Я знаю, что все 1 в первых 8 бит означают, что пиксель не имеет прозрачности.
Поскольку нет 24-битного целочисленного типа. 'int', с 32 битами, является следующим самым большим. И лишнее усилие упаковки 4 24-битных чисел на 3 32-битных 'int' просто не стоит. –
@ AndyTurner ok, быстрый вопрос: если установить первые 8 бит на 0, то изменится ли цвет пикселя? или он будет выглядеть одинаково? – NoobScript
Зависит от того, как вы показываете изображение. Самый простой способ узнать это просто попробовать. –