ОЗТМ Лаб (Графічні формати)

Матеріал з Вікі ЦДУ
Версія від 22:13, 15 лютого 2016; Сергій Кондратьєв (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

BMP (Bitmap Picture)

BMP (від англ. Bitmap Picture) — формат зберігання растрових зображень, розроблений компанією Microsoft. Файли формату BMP можуть мати розширення .bmp, .dib і .rle.

Загальна структура

Дані в форматі BMP складаються з трьох основних блоків різного розміру:

Тема зі структури BITMAPFILEHEADER і блоку BITMAPINFO. Останній містить: Інформаційні поля. Бітові маски для вилучення значень колірних каналів (опціональні). Таблиця кольорів (опціональна). Кольоровий профіль (опціональний). Піксельні дані. При зберіганні в файлі все заголовки йдуть з самого першого байта. Піксельні дані можуть знаходитися на довільній позиції в файлі (вона вказується в поле OffBits структури BITMAPFILEHEADER), в тому числі і в видаленні від заголовків. Опціональний колірний профіль з'явився у версії 5 і він також може вільно розташовуватися, але його позиція вказується від початку BITMAPINFO (в поле ProfileData).

В оперативній пам'яті (наприклад, при взаємодії з WinAPI-функціями GDI) з заголовків виключається структура BITMAPFILEHEADER. При цьому Microsoft рекомендує розташовувати колірний профіль відразу за заголовками в єдиному блоці. Піксельні дані можуть мати довільне розташування в пам'яті і їх адреса вказується в параметрах процедур. У будь-якому випадку рекомендується в пам'яті все блоки містити за адресами кратним чотирьом: в заголовках присутні 32-бітові осередки, а до піксельним даними така вимога зазначено в документації. Ця вимога справедливо тільки для оперативної пам'яті: при зберіганні в файлі його дотримуватися не обов'язково.