Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Структура файлу

Читайте также:
  1. II. Структура
  2. Quot;ПАБЛИК РИЛЕЙШНЗ": ПОНЯТИЕ, ИСТОРИЯ, СТРУКТУРА
  3. V. 17.3. Структура характера и симптомокомплексы его свойств
  4. V. 18.4. Талант, его происхождение и структура
  5. Активным детям требуется подготовка и структура
  6. Анатомическая структура нерва
  7. Б. Структура отрасли

BMP-файл складається з чотирьох частин:

· Заголовок файлу (BITMAPFILEHEADER)

· Заголовок зображення (BITMAPINFOHEADER, може бути відсутнім). BITMAPV4HEADER (Win95, NT4.0) BITMAPV5HEADER (Win98/Me, 2000/XP)

· Палітра (може бути відсутня)

· Власне зображення

BITMAPFILEHEADER [8]:

Ця структура містить інформацію про тип, розмір і подання даних у файлі.

Тип WORD повинен мати розмір 16 біт, типи DWORD і LONG – 32 біта, тип LONG – знаковий, порядок байтів мається на увазі little endian[9].

· bfType – тип файлу, символи «BM» (в HEX: 0x42 0x4d).

· bfSize – розмір всього файлу в байтах.

· bfReserved1 і bfReserved2 – зарезервовані, повинні містити нулі.

· bfOffBits – містить зміщення в байтах від початку структури BITMAPFILEHEADER до безпосередньо бітів зображення.

BITMAPINFOHEADER (найпростіший випадок):

· biSize – розмір структури в байтах.

· biWidth – ширина зображення в пікселях. Для Win98/Me і Win2000/XP: якщо поле biCompression містить BI_JPEG або BI_PNG, тут вказана ширина розпакованого зображення.

· biHeight – висота зображення в пікселах. Якщо містить позитивне значення - зображення записано в порядку знизу вгору, нульовий піксель в нижньому лівому кутку. Якщо значення від'ємне - зображення записано зверху вниз, нульовий піксел у верхньому лівому куті зображення.

· biPlanes – містить одиницю.

· biBitCount – вказує кількість біт на піксель.

· biCompression – вказує тип стиснення для стиснених зображень.

Палітра:

Палітра може містити послідовність чотирьохбайтові полів за кількістю доступних кольорів (256 для 8-бітного зображення). Три молодші байти кожного поля визначають інтенсивність червоною, зеленою і синьою компоненти кольору, старший байт не використовується. Кожен піксель зображення описаний в такому випадку одним байтом, що містить номер поля палітри, в якому збережений колір цього пікселя.

Якщо піксел зображення описується 16-бітовим числом, палітра може зберігати три двобайтових значення, кожне з яких визначає маску для вилучення з 16-бітного піксела червоною, зеленою і синьою компонент кольору.

Файл BMP може не містити палітри, якщо в ньому зберігається нестиснене повнокольорове зображення.

Власне зображення:

Послідовність пікселів, записаних в тому чи іншому вигляді. Пікселі зберігаються порядково, знизу вгору. Кожен рядок зображення доповнюється нулями до довжини, кратній чотирьом байтам.

В bmp файлах з глибиною кольору 24 біта, байти кольору кожного пікселя зберігаються в порядку BGR (Blue, Green, Red).

B bmp файлах з глибиною кольору 32 біта, байти кольору кожного пікселя зберігаються в порядку BGRA (Blue, Green, Red, Alpha).

 

 

3.3 Складнощі у використанні

Складнощі виникають у трьох випадках:

1. Якщо зображення розташоване «ногами вгору» (перший ряд пікселів на місці останнього) то зчитувати зображення потрібно або з кінця до початку, або з початку до кінця але записувати у кінець масиву.

2. Якщо зображення не 32-бітне, то є можливість появи доповнення - кожен рядок зображення доповнюється нулями до довжини, кратній чотирьом байтам, яке треба «перескакувати».

3. Якщо зображення стиснене – це вже проблема у використанні і не тільки зображення формату BMP.

Але ці проблеми досить легко вирішуються за при використанні бібліотек з відкритим вихідним кодом як, наприклад, EasyBMP. Адже «навіщо винаходити велосипед», якщо від стоїть у тебе на задньому дворі.

 


Дата добавления: 2015-07-20; просмотров: 54 | Нарушение авторских прав


Читайте в этой же книге: Етапи шифрування | Види шифрування | Суть роботи алгоритму | Висновки |
<== предыдущая страница | следующая страница ==>
Висновки| Обрання мови програмування

mybiblioteka.su - 2015-2024 год. (0.006 сек.)