BMP (Bitmap Picture)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:55, 17 ноября 2016.


BMP (англ. BitMap Picture) — аппаратно-независимое побитовое изображение Windows - поддерживается любыми Windows-совместимыми программами. Структура файла BMP используется Windows для хранения растровых изображений. Например, в этом формате хранятся рисунки фона, пиктограммы и другие растровые изображения Windows. Формат сводит к минимуму вероятность ошибок или неправильной интерпретации растровых данных.


Основным недостатком данного формата является то, что только версии формата с 4- и 8-битовым цветом поддаются сжатию. Следовательно, 24-битовые файлы BMP будут очень большими. Кроме того, применение файлов BMP ограничено платформами Windows и OS/2. Все это делает невозможным применение данного формата в Сети. В то же время этот формат используется при создании графических файлов в графических редакторах и при сканировании изображений. В связи с этим знание особенностей этого формата графических файлов разработчику веб-страниц целесообразно.

Каждый файл BMP содержит заголовок файла, заголовок изображения, растровые данные и карту цветов (кроме изображения 24-битным цветом).

Заголовок файла ВМР содержит информацию о типе и размере файла, а также о расположении в нем данных. После заголовка файла следует структура, задающая информацию о размере, цвете и сжатии изображения.

Сжатие. Поле biCompression в BITMAPINFO определяет, какой тип сжатия используется в файле. Если значение поля равно BI_RGB, то рисунок не сжимается. Если же значение поля равно BI_RLE4 или BI_RLE8, то рисунок использует метод сжатия групповым кодированием для изображений, соответственно, с 4-бит/пиксель или 8 бит/пиксель.

Карта цветов. Значение поля biCirUsed определяет, будут ли использоваться растровым рисунком индексированные цвета. Если рисунок состоит из 1-, 4-, 8-битовых пикселей, то должна использоваться карта цветов. Если значение поля biCirUsed равно нулю, то применяется либо полная карта, либо 24-битовый цвет. Если поле не равно нулю, то его значение равно действительному количеству цветов, которые будут доступны программе-генератору графики или драйверам устройств. Поле biClrimportant определяет, сколько цветов в индексированной карте считаются важными для изображения рисунка. Если его значение равно нулю, то важными будут все цвета.

Растровые данные. За картой цветов следуют растровые данные. Они хранятся в виде 1-, 4-, или 8-битовых индексов карты цветов или в виде буквенных 24-битовых данных системы RGB. Пиксели в растре записываются, начиная с нижнего левого угла изображения, и читаются слева направо и снизу вверх.

Имя Длина Смещение Описание
Заголовок файла (BitMapFileHeader)
Type 2 0 Сигнатура "BM"
Size 4 2 Размер файла
Reserved 1 2 6 Зарезервировано
Reserved 2 2 8 Зарезервировано
OffsetBits 4 10 Смещение изображения от начала файла
Информационный заголовок (BitMapInfoHeader)
Size 4 14 Длина заголовка
Width 4 18 Ширина изображения, точки
Height 4 22 Высота изображения, точки
Planes 2 26 Число плоскостей
BitCount 2 28 Глубина цвета, бит на точку
Compression 4 30 Тип компрессии (0 - несжатое изображение)
SizeImage 4 34 Размер изображения, байт
XpelsPerMeter 4 38 Горизонтальное разрешение, точки на метр
YpelsPerMeter 4 42 Вертикальное разрешение, точки на метр
ColorsUsed 4 46 Число используемых цветов (0 - максимально возможное для данной глубины цвета)
ColorsImportant 4 50 Число основных цветов
Таблица цветов (палитра) (ColorTable)
ColorTable 1024 54 256 элементов по 4 байта
Данные изображения (BitMap Array)
Image Size 1078 Изображение, записанное по строкам слева направо и снизу вверх

См. также