Заголовок файла: BITMAPFILEHEADER



Тема 2 – Методы сжатия изображений.

 

Дискретизация и квантование изображений

 

Изображение, представленное в аналоговой форме, необходимо преобразовать в некоторую числовую матрицу, прежде чем присту­пать к его обработке на ЭВМ. Процесс такого преобразования на­зывается ДИСКРЕТИЗАЦИЕЙи состоит из двух процессов: ВЫБОРКИи КВАНТОВАНИЯ. Первый из них заключается в выборе на поле наблю­дения некоторого множества точек. В каждой выбранной точке из­меряются характеристики изображения, которые используются на всех последующих этапах обработки изображения. Поскольку все ЭВМ располагают ограниченной памятью, результаты полученных измерений необходимо описать конечным числом символов – соот­ветствующая   процедура называется процессом квантования. Харак­теризуя плотность размещения выборочных точек, часто говорят о пространственном разрешении, а характеризуя точность представления результатов проведенных измерений – о тоновом (или цве­товом) разрешении.

 

Файлы растровой (bitmap) графики WINDOWS

 

Растровые изображения сохраняются на постоянных носителях компьютера в виде графических файлов. Из предыдущего рассмотрения понятно, что для правильной интерпретации изображения и вывода его на экран кроме массива данных, соответствующего пикселям изображения, в графическом файле необходимо хранить также другие его параметры, такие как, например, горизонтальный и вертикальный размеры изображения, характер представления цветов пикселей и т.д. Форматов графических файлов разработано достаточно много, что объясняется желанием сохранить графическую информации более компактно.

Графические файлы, как правило, состоят из нескольких частей. Часть файла, в которой хранится сопровождающая информация, называется его ЗАГОЛОВКОМ (по английски header). У файлов разного формата его размер и структура отличаются. Ранние форматы графических файлов ограничивались записью в заголовок признака формата и размеров изображения. Изображения из таких файлов могли быть правильно отображены только в том видеорежиме и, зачастую, на той аппаратуре, при использовании которых оно было записано. В дальнейшем были разработаны так называемые аппаратно независимые форматы (по английски DIB – device-independent bitmap), которые содержат информацию о видеорежиме и палитре, а пиксели сохраняются в форме, не зависящей от метода, используемого дисплеем для представления цвета. Более подробно различные форматы графических файлов будут рассмотрены в разделе «Методы сжатия и хранения изображений». Здесь же ограничимся рассмотрением формата файлов изображений, которые использует популярная операционная система MICROSOFT WINDOWS. Эти файлы сохраняются в независящем от внешних устройств DIB формате, который позволяет WINDOWS отображать изображения на дисплее любого типа. Расширение имени этих файлов – .bmp.

Растровый файл *.bmp принято представлять состоящим из четырех частей:

 

BITMAPFILEHEADER bmfh;              // 14 байт BITMAPINFOHEADER bmih;              // 40 байт RGBQUAD          aColors[];         // переменная длина или отсутствует BYTE                    aBitmapBits[]; // переменная длина

 

Первые три части представляют собой заголовок, при этом третья часть может и отсутствовать. Четвертая часть – это собственно изображение, сохраненное слева направо и снизу вверх. Таким образом, порядок следования строк (снизу вверх) обратный порядку следования строк в видеопамяти, где они размещаются сверху вниз.

Первая часть содержит признак растрового графического файла и информацию о его размере и структуре; то есть, характеризует файл в целом. Вся эта информация сгруппирована в 14-байтную структуру BITMAPFILEHEADER.

Вторая часть содержит общую информацию об изображении, такую как его размеры, тип сжатия и цветовой формат. Эта информация сгруппирована в структуру BITMAPINFOHEADER размером 40 байт.

Третья часть (может отсутствовать) содержит палитру - таблицу цветов, используемых в изображении.

Рассмотрим каждую из этих частей подробнее.

 

 

Заголовок файла: BITMAPFILEHEADER

 

Как уже говорилось, первая часть, характеризующая файл в целом, представляет собой 14-байтную структуру BITMAPFILEHEADER:

 

typedef struct tagBITMAPFILEHEADER { /* bmfh */

WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER;

 

Элементы структуры BITMAPFILEHEADER имеют следующие значения:

 

BfType Показывает, что файл действительно представляет собой растровое изображение WINDOWS. Этот элемент должен быть строкой из двух символов "BM" (шестнадцатеричные коды 42 и 4D).
BfSize Определяет размер файла в байтах. Должен совпадать с размером, указанным в каталоге диска.
BfReserved1 и BfReserved2 Зарезервированные поля, они должны быть равны нулю.
BfOffBits Определяет байтовое смещение от начала файла до начала данных растрового изображения.

 

Элементы bfType и bfSize вместе можно использовать для идентификации правильного *.bmp файла. BfType должен равняться 0x4D42 (символы «BM»), а bfSize должен совпадать с фактической длиной файла. Можно, конечно, таких проверок не делать, а полностью положиться на расширение файла (*.bmp), но возможность проверки в структуре файла заложена.


Дата добавления: 2019-03-09; просмотров: 130; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!