Почему информация bpp в 0x1C на этом изображении .bmp неверна? - PullRequest
0 голосов
/ 30 мая 2011

Hex editor

Адрес 1D указывает, что изображение составляет восемь бит на пиксель, но это не так, каждый пиксель представлен 3 байтами (24 битами).

Сначала я думал, что Photoshop сделал это по ошибке, но я обнаружил, что этот формат используется для всех изображений в оттенках серого.

Вместо того, чтобы использовать четыре байта для пикселя, почему бы изображениям .bmp не использовать значение от 0 до FF для описания значения оттенков серого для каждого пикселя?

РЕДАКТИРОВАТЬ: я смог ответить на свой вопрос о структуре файла

из Википедии

Формат 8 бит на пиксель (8 бит / с) поддерживает 256 различных цветов и хранит 1 пиксель на 1 байт.

каждый байт индекс в таблицу до 256 цвета. Эта таблица цветов представлена ​​в формате 32bpp 8.8.8.0.8 RGBAX.

Таблица цветов, отображаемая в шестнадцатеричном редакторе, составляет четыре байта на пиксель.

Намного ниже это фактический массив пикселей, который составляет 8 бит на пиксель.

the actual pixel array

Я подсчитал, что по расчету изображение размером 64 x 64, 4096 пикселей.

Массив пикселей начинается с 436 и заканчивается в 1437. В десятичном виде разница между этими двумя числами составляет 4097, поэтому массив пикселей составляет ровно один байт на пиксель.

Мне все еще интересно, почему таблица цветов необходима для изображения в оттенках серого, хотя

1 Ответ

0 голосов
/ 12 июня 2011

Мне все еще интересно, почему таблица цветов необходима для изображения в оттенках серого, хотя

Похоже, что файлы bmp не имеют специального режима оттенков серого. Таким образом, вы не можете установить в заголовке формат в оттенках серого, поэтому вам нужна таблица цветов для определения используемых вами цветов. Даже если все цвета в оттенках серого.

Если вы посмотрите на формат .png , вы можете определить, что используете изображение в оттенках серого, поэтому вам не нужна таблица цветов. (но также можно использовать таблицу цветов для создания изображения в градациях серого).

...