Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Структура файлів.

 

Заголовок файлу
Заголовок зображення
Таблиця кольорів
Піксельні Дані  

При розробці програми в середовищі Windows, структура ВМР вимагаються із файлу заголовка Windows.h При роботі не в Windows можна створювати свої власні структури із таблиць, що наводяться нижче.

 

 

Рис. 3.5 структура

файлу растрового

зображення.

 

Кожен файл 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-23; Просмотров: 453; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.