Почему информация bpp в 0x1C на этом изображении.bmp неверна?
Адрес 1D указывает, что изображение составляет восемь бит на пиксель, но это не так, каждый пиксель представлен 3 байтами (24 битами).
Сначала я думал, что Photoshop сделал это по ошибке, но я обнаружил, что этот формат используется для всех изображений в оттенках серого.
Вместо того, чтобы использовать четыре байта для пикселя, почему бы изображениям.bmp не использовать значение от 0 до FF для описания значения оттенков серого каждого пикселя?
РЕДАКТИРОВАТЬ: я смог ответить на свой вопрос о структуре файла
Формат 8 бит на пиксель (8 бит на пиксель) поддерживает 256 различных цветов и сохраняет 1 пиксель на 1 байт.
Каждый байт является индексом в таблице до 256 цветов. Эта таблица цветов представлена в формате 32bpp 8.8.8.0.8 RGBAX.
Таблица цветов, показанная в шестнадцатеричном редакторе, составляет четыре байта на пиксель.
Намного ниже это фактический массив пикселей, который составляет 8 бит на пиксель.
Я понял это по расчету, изображение размером 64 х 64, 4096 пикселей.
Массив пикселей начинается в 436 и заканчивается в 1437. В десятичном виде разница между этими двумя числами составляет 4097, поэтому массив пикселей составляет ровно один байт на пиксель.
Мне все еще интересно, почему таблица цветов необходима для изображения в оттенках серого, хотя
1 ответ
Мне все еще интересно, почему таблица цветов необходима для изображения в оттенках серого, хотя
Похоже, что файлы BMP не имеют специального режима оттенков серого. Таким образом, вы не можете установить в заголовке формат в оттенках серого, поэтому вам нужна таблица цветов для определения используемых вами цветов. Даже если все цвета в оттенках серого.
Если вы посмотрите на формат .png, вы можете определить, что используете изображение в оттенках серого, поэтому вам не нужна таблица цветов. (но было бы также возможно использовать таблицу цветов для создания изображения в градациях серого).