BMP (від англ. Bitmap Picture) - формат зберігання растрових зображень, розроблений компанією Microsoft.
З форматом BMP працює величезна кількість програм, оскільки її підтримка інтегрована в операційні системиWindows і OS/2. Файли формату BMP можуть мати розширення .bmp, .dib і .rle. Крім того, дані цього формату включаються в двійкові файли ресурсів RES і в PE -файли.
Глибина кольору в цьому форматі може бути 1, 2, 4, 8, 16, 24, 32, 48 біт на піксель, але глибина 2 біта на піксель офіційно не підтримується. При цьому для глибини кольору менше 16 біт використовується палітра з повнокольоровими компонентами завглибшки 24 біта.
Палітра.
Палітра може містити послідовність чотирьохбайтових полів по числу доступних кольорів (256 для 8-бітового зображення). Три молодші байти кожного поля визначають інтенсивність червоної, зеленої і синьої компоненти кольору, старший байт не використовується. Кожен піксель зображення описаний у такому разі одним байтом, що містить номер поля палітри, в якому збережений колір цього пікселя.
Якщо піксель зображення описується 16-бітовим числом, палітра може зберігати три двобайтові значення, кожне з яких визначає маску для витягання з 16-бітового пікселя червоної, зеленої і синій компонент кольору.Файл BMP може не містити палітри, якщо в нім зберігається не стисле повнокольорове зображення.У bmp -файлах з глибиною кольору 24 біта, байти кольору кожного пікселя зберігаються в порядку BGR (Blue, Green, Red)
B bmp -файлах з глибиною кольору 32 біта, байти кольору кожного пікселя зберігаються в порядку BGRA (Blue, Green, Red, Alpha)
Бітність зображення
Залежно від кількості кольорів, що представляються, на кожну точку відводиться від 1 до 48 бітів:
§ 1 біт - монохромне зображення (два кольори).
§ 2 біта - 4 можливі кольори(2-бітовий режим офіційно не стандартизований).
§ 4 біта - 16-кольорове зображення (режими роботи EGA).
§ 8 біт (1 байт) - 256 кольорів, останній з режимів, що підтримували індексовані кольори.
§ 16 біт (2 байти) - режим HiColor, Для 5-6-5 = 65536 можливих відтінків, для 5-5-5 = 32768 можливих відтінків.
§ 24 біта (3 байти) - TrueColor. У зв'язку з тим, що 3 байти не дуже добре співвідносяться з мірами двійки (особливо при зберіганні даних в пам'яті, гдевиравнивание даних по границі слова має значення), замість нього часто використовують 32-бітове зображення. У режимі TrueColor на кожного з трьох каналів (у режимі RGB) відводиться по 1 байту (256 можливих значень), загальна кількість кольорів дорівнює 16777216.
§ 32 біта (4 байти) - цей режим практично аналогічний TrueColor, четвертий байт зазвичай не використовується, або в нім розташовується альфа-канал (прозорість).
§ 48 біт (6 байт) - рідко використовуваний формат з підвищеною точністю передачі кольору (16 біт на канал), підтримується відносно малою кількістю програм і устаткування.
Індексовані кольори
При кількості біт 1 (2 кольори), 2 (4 кольори), 4 (16 кольорів) або 8 (256 кольорів) на кожен піксель, може використовуватися спеціальний режим індексованих кольорів. В цьому випадку число, відповідне кожному пікселю, вказує не на колір, а на номер кольору в палітрі. Завдяки використанню палітри є можливість адаптувати зображення до кольорів, присутніх на зображенні. У такому разі зображення обмежено не заданими кольорами, а максимальною кількістю одночасно використовуваних кольорів.
Переваги: займає мало місця, годиться для створення готичних примітивів.
Недоліки: підтримка лише основної палітри кольорів (256), за допомогою цього формату неможливо вимагати якісного зображення після генерації.