Заголовок файла: 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!