Заголовок файлу.

Кожен файл Windows ВМР розпочинається структурою BITMAPFILENEADER,яка описується в таблиці 3.2.

 

Таблиця 3.2 Структури Bitmapfileheader.

Ім’я поля Розмір в байтах Опис
bfType Вміщує символи «ВМ», які ідентифікують тип файлу
bfSize Розмір файлу
bfReserved 1 Не використовуються
bfReserved 2 Не використовуються
bfOffBits Зсув до початку даних пік селів

 

Щоб переконатись, що файл, який ми читаємо, є файлом ВМР, можна виконати 3 перевірки:

1) Перші 2 байти повинні вміщувати ASCII – символи «В» та «М»; «В» передує «М».

2) Якщо використовується файлова система, яка дозволяє визначати точний розмір файлу в байтах, можна порівняти розмір файлу із значенням поля bfSize.

3) Значення полів bfReserved 1 та ~2 – нулеві.

Заголовок зображення.Може бути в одному із двох форматів, що визначаються структурами BITMAPFILENEADER->(40 байтів)та BITMAPFILENEADER ->(12 байтів).

Структура Bitmapfileheader представляє формат ВМР для OS/2, а Bitmapfileheader – формат Windows (більш поширений).

Відрізнити ці структури можна за їх розміром: Bitmapfileheader – 12 байтів,

Bitmapfileheader – не менше 40 В.

Опис структури Bitmapfileheader наводиться в таблиці 3.3.

 

Таблиця 3.3. Структура Bitmapfileheader.

Ім’я поля Розмір [байти] Опис
BiSize Розмір заголовка. Повинен бути не менше 40
BiWidth Ширина зображення
BiHeight Висота зображення
BiBitСount Число бітів на піксель – 1,4,8,16,24 чи 32
BiPlanes Повинно бути =1
BiCompression Тип стиснення : BI_RGB=0; BI_RLE8=1; BI_RLE4=2; BI_BITFIELDS=3
BiSizeImage Розмір зображення – може бути =0, якщо нема стиснення.
BiXPelsPerMeter Переважальна дозволяючи сироможність в пікселях на метр заХ/2.
BiYPels per Meter За Y. Переважальна дозволяюча спроможність в пікселях на метр.
BiClrUsed Число фактичного використання елементів карти кольорів.
BiCllrImportant Число кольорів, що мають вагомість

 

Висота зображення задається без знаку (unsigned value). Від’ємне значення поля biHaight вказує, що дані пікселів розміщуються зверху донизу, а не за звичним порядком знизу доверху.

Структура BITMAPFILENEADER– ще один формат заголовка зображення. В даній структурі полів менше і всім їм відповідають аналогічні поля в структурі BITMAPFILENEADER. Якщо файл використовує структуру BITMAPFILENEADER, дані пікселів не можуть стискатись.

 

Таблиця 3.4. Структура Bitmapfileheader.

Ім’я поля Розмір [байти] Опис
BiSize Розмір заголовка повинен =12
BiWidth Ширина зображення
BiHeight Висота зображення
BiPlanes Повинно =1
BiBitСount Число бітів – 1,4,8 або 24

Кольорова палітра.Може організовуватись в одному із трьохформатів. Перші два формати використовуються для відображення даних пік селів в значення RGB – кольору,коли число бітів на піксель =1, 4 чи 8 (поля biBitСount чи bcBitСount). Для файлів ВМР в форматі Windows палітра складається із масиву 2 число бітів структур RGBQUAD (таблиця 3.5). Файли ВМР в форматі OS/2 використовують масив структур RGBTRIPLE (таблиця 2.5).

Таблиця 3.5. Структура RGBQUAD

Поле Розмір Опис
RgbBlue Значення синього кольору
RgbGreen Значення зеленого кольору
RgbRed Значення червоного кольору
RgbReserved Повинно =0

 

Таблиця 3.6. Структура RGBTRIPLE.

Поле Розмір Опис
rgbtBlue Значення синього кольору
rgbtGreen Значення зеленого кольору
rgbtRed Значення червоного кольору

 

В дійсності, кінцевий формат кольорової палітри повністю не представляє відображення кольорів. Якщо число бітів на піксел =16 чи 32, значення bitCompression структури BITMAPFILENEADER =Bi_BITFIELDS (3), то місце масиву структур RGBQUAD займає масив із трьох 4-байтових цілих чисел. Ці три значення є бітовими масками, які вказують біти, що використовуються для R, G та B компонентів відповідно…

Для зображень з 24 бітами на піксель, а також для 16 – та 32 – бітових зображень кольорова палітра відсутня, якщо поле bitCompression не встановлене рівним Bi_BITFIELD.

В 32 – бітовому зображенні три 32 – бітові значення

вказується на те, що кожен із цих компонентів представляється 10 бітами. Логічне множення (AND) трьох значень повинно =0, а діапазон ненулевих бітів кожного компоненту повинен бути неперервним.

Дані пікселів.Зазвичай дані розміщуються безпосередньо за (BITMAP INFOHEDER чи BITMAPCOREHEADER) структурами, але і можуть відокремлюватися байтами – заповнювачами. Щоб визначити зміщення даних пікселів відносно структури BITMAPCOREHEADE, необхідно скористатись значенням поля bfoffBits у заголовку BITMAPCOREHEADER.

Формати даних пікселів залежить від числа бітів на піксел.

1). 1 і 4 біти на піксел. Кожен байт даних поділяється або на 8, або на 2 поля, значення яких

представляє вказівник в кольоровій палітрі. Поле старшого біта – крайній

лівий піксел.

2). 8 бітів на піксел. Кожен піксел в рядку описується 1 байтом, який є вказівником в кольоровій

палітрі.

3). 16 бітів на піксел. Кожен піксел описується 2 – байтовим цілим числом. Якщо значення поля

biCompression в структурі BITMAPCOREHEADER = B1_RGB (0), Яскравість

(intensity) кожного кольору представляється 5 бітами (старший біт не викори-

Стовується). Використання бітів за замовчуванням:

Рисунок 3.6. Формат 16 бітів на піксел.

  Червоний   Синій Зелений

Якщо значення поля biCompression = значенню Bi_BITMAP, при 4 – байтовій

бітові маски, що слідують за структурою BITMAPCOREHEADER, вказують

біти, що використовуються для кожного кольорового компонента. Бітові ма-

ски йдуть за порядком R, B, G.

4). 24 бітів на піксел. Кожен байт – значення B, G, R– компонентів відповідно. (Цей порядок зво-

ротній тому, що використовується у більшості форматів файлів зображень)

5). 32 бітів на піксел. За виключенням невикористання байту у кінці (25÷31 біти) цей формат по-

вністю подібний формату з 24 бітами на піксел.

Якщо поля biCompression включає значення Bi_BITFIELD, три 4-байтові

бітові маски, що слідують за структурою BITMAPCOREHEADER, вказують

біти, які використовуються для кожного компонента. Порядок масок: R, B, G.








Дата добавления: 2014-12-08; просмотров: 1491;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.