КАТЕГОРИИ: Архитектура-(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.
Щоб переконатись, що файл, який ми читаємо, є файлом ВМР, можна виконати 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.
Висота зображення задається без знаку (unsigned value). Від’ємне значення поля biHaight вказує, що дані пікселів розміщуються зверху донизу, а не за звичним порядком знизу доверху. Структура BITMAPFILENEADER – ще один формат заголовка зображення. В даній структурі полів менше і всім їм відповідають аналогічні поля в структурі BITMAPFILENEADER. Якщо файл використовує структуру BITMAPFILENEADER, дані пікселів не можуть стискатись.
Таблиця 3.4. Структура Bitmapfileheader.
Кольорова палітра. Може організовуватись в одному із трьох форматів. Перші два формати використовуються для відображення даних пік селів в значення RGB – кольору, коли число бітів на піксель =1, 4 чи 8 (поля biBitСount чи bcBitСount). Для файлів ВМР в форматі Windows палітра складається із масиву 2 число бітів структур RGBQUAD (таблиця 3.5). Файли ВМР в форматі OS/2 використовують масив структур RGBTRIPLE (таблиця 2.5). Таблиця 3.5. Структура RGBQUAD
Таблиця 3.6. Структура RGBTRIPLE.
В дійсності, кінцевий формат кольорової палітри повністю не представляє відображення кольорів. Якщо число бітів на піксел =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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |