BMP
Материал из Википедии — свободной энциклопедии
BMP (или DIB — device-independent bitmap) — формат хранения графических изображений (от англ. bit map). Глубина цвета от 1 до 48 бит на пиксель. Возможно сжатие без потерь по алгоритму RLE.
Содержание |
[править] Структура
BMP-файл состоит из четырёх частей:
- Информация о файле (BITMAPFILEHEADER)
- Информация об изображении (BITMAPINFOHEADER, может отсутствовать)
- Палитра (может отсутствовать)
- Само изображение
[править] Битность изображения
В зависимости от количества представляемых цветов, на каждую точку отводится от 1 до 48 битов:
- 1 бит — монохромное изображение (два цвета)
- 2 бита — редко используемый формат с 4 возможными цветами (один из режимов CGA)
- 4 бита — 16 цветное изображение, один из режимов работы VGA
- 8 бит (1 байт) — 256 цветов, последний из режимов, поддерживавших индексированные цвета (см ниже)
- 16 бит (2 байта) — режим Hi Color, 65536 возможных оттенков.
- 24 бита (3 байта) — True Color. В связи с тем, что 3 байта не очень хорошо соотносятся с степенями двойки, вместо него часто используют 32 битное изображение. В режиме True Color на каждый из трёх каналов (в режиме RGB) отводится по 1 байту (256 возможных значений), общее количество цветов равно 16777216.
- 32 бита (4 байта) — этот режим практически аналогичен True Color, четвёртый байт обычно используется для хранения альфа-канала.
- 48 бит (6 байт) — редко используемый формат с повышенной точностью передачи цвета, поддерживается относительно-малым количеством программ и оборудования.
[править] Индексированные цвета
При количестве бит от 1 до 8 на каждый пиксел может использоваться специальный режим индексированных цветов. В этом случае число, соответствующее каждому пикселу указывает не на цвет, а на номер цвета в палитре. Благодаря использованию палитры имеется возможность адаптировать изображение к цветам, присутствующим на изображении. В таком случае изображение ограниченно не заданными цветами, а максимальным количеством одновременно используемых цветов.
[править] Заголовки файла
Первый заголовок
typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER;
Второй заголовок
typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER;
[править] Ссылки
- Bitmap Storage Explanation (англ.)
- Описание формата BMP (русск.)
Форматы медиаданных | ||||
---|---|---|---|---|
Видеокодеки |
|
|||
Аудиокодеки |
|
|||
Графические форматы |
|
|||
Медиа-контейнеры |
|
|||