На этом шаге мы рассмотрим структуру файла BMP.
К настоящему времени известно много форматов файлов для растровых изображений. Здесь мы рассмотрим один из самых популярных форматов, который обязан своей распространенностью операционной системе Windows - формат BMP.
Общая структура BMP-файла такова:
Рис.1. Общая структура BMP-файла
Заголовок файла BMP называется BITMAPFILEHEADER. В нем помещается общее описание файла. Заголовок имеет следующие поля:
Далее в файле следует еще один заголовок - BITMAPINFOHEADER, в котором хранится описание размеров растра и цветового формата пикселей. Здесь имеются такие поля:
Затем в файле помещается палитра в виде записей RGBQUAD. Каждая запись содержит четыре поля.
Количество записей RGBQUAD равно количеству используемых цветов. Палитра отсутствует, если число бит на пиксел равно 24. Также палитра не нужна и для некоторых цветовых форматов 16 и 32 бит на пиксель.
Здесь приняты такие обозначения для типов полей:
После палитры (если она есть) в файле BMP записывается растр в виде битового (а точнее, байтового массива). В битовом массиве последовательно записываются байты строк растра. Количество байт в строке должно быть кратно четырем, поэтому если количество пикселей по горизонтали не соответствует такому условию, то справа в каждую строку дописывается некоторое число битов (выравнивание строк на границу двойного слова).
Сжатие изображений в файлах BMP отсутствует, однако подобный формат (Device Independent Bitmap) описания растровых изображений также используется и для файлов типа DIB, где применяются простейшие алгоритмы сжатия RLE (Run Length Encoding). Алгоритмы RLE также используются и в других растровых графических форматах, например PCX.
Описание других графических форматов можно найти в сети Internet.
Со следующего шага мы начнем рассматривать координатный метод.