Формат BMP - Подання графічних даних

Формат BMP

Формат файлу BMP (скорочено від BitMaP) - це "рідний" формат растрової графіки для Windows, оскільки він найближче відповідає внутрішньому формату Windows, в якому ця система зберігає свої растрові масиви. Для імені файлу, представленого в форматі BMP, найчастіше використовується розширення BMP, хоча деякі файли мають розширення RLE, що означає run length encoding (кодування довжини серій). Розширення RLE імені файлу зазвичай вказує на те, що стиснення растрової інформації файлу одним з двох способів стиснення RLE, які допустимі для файлів BMP-формату.

У файлах BMP інформація про колір кожного пікселя кодується 1, 4, 8, 16 або 24 біт (біт/піксел). Числом біт/піксел, званим також глибиною подання кольору, визначається максимальна кількість кольорів у зображенні. Зображення при глибині 1 біт/піксел може мати лише два кольори, а при глибині 24 біт/піксел - понад 16 млн. різних кольорів.

Формат даних растрового масиву у файлі BMP залежить від кількості біт, що використовуються для кодування даних про колір кожного пікселя. При 256-колірному зображенні кожен піксел в тій частині файлу, де містяться дані растрового масиву, описується одним байтом (8 біт). Цей опис пікселя не представляє значення кольорів RGB, а служить покажчиком для входу до таблиці кольорів файлу. Таким чином, якщо в якості першого значення кольору RGB в таблиці кольорів файлу BMP зберігається R/G/B=255/0/0, то значення піксела 0 в растровому масиві буде поставлене у відповідність яскраво-червоний колір. Значення пікселів зберігаються в порядку їх розташування ліворуч, починаючи (як правило) з нижнього рядка зображення. Таким чином, у 256-кольоровому BMP-файлі перший байт даних растрового масиву є індексом для кольорупікселя, що знаходиться в нижньому лівому куті зображення; другий байт представляє індекс для кольору сусіднього справа пікселя і т.д. Якщо число байт у кожному рядку непарне, то до кожного рядка додається додатковий байт, щоб вирівняти дані растрового масиву по 16-біт кордонів.

Не всі файли BMP мають однакову структуру. Наприклад, файли BMP з глибиною 16 та 24 біт/піксел не мають таблиць кольорів; у цих файлах значення пікселів растрового масиву безпосередньо характеризують значення RGB кольорів. Також можуть відрізнятися внутрішні формати зберігання окремих розділів файлів. Наприклад, інформація растрового масиву в деяких 16 і 256-кольорових BMP-файлах може стискатися за допомогою алгоритму RLE, який замінює послідовності ідентичних пікселів зображення на лексеми, що визначають число пікселів у послідовності та їх колір. У Windows допускається робота з BMP-файлами стилю OS/2, у яких використовуються різні формати інформаційного заголовка растрового масиву та таблиці кольорів.