Студопедия

Главная страница Случайная страница

Разделы сайта

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






Растровими зображеннями






8.1 Загальні відомості про формати растрових зображень

 

Сам термін “растрове зображення” (bitmap) доволі часто вводить новачків у програмуванні в оману. Для більшості людей растрове зображення є рисунком, що може бути відображеним на екрані комп’ютера. Але це є правдою лише до певної міри. Як вже зазначувалося у підрозділі 4.2, взагалі існує два основних типи растрових зображень, що використовуються у програмах Microsoft Windows.

Перший тип має назву DDB (device-independent bitmap) і представляє растрові зображення, залежні від пристрою виведення. Цей тип зображень існує у пам’яті комп’ютера, не існує – у формі дискових файлів. Виведення растрових зображень формату DDB є дуже простим, здійснюється у декілька кроків і немає суттєвих зауважень стосовно складності програмування.

DIB (device-independent bitmap) є другим типом растрових зображень і відображує зображення, що є незалежними від пристрою виведення. Усі звичайні *.bmp-файли відповідають саме цьому форматові. Таким чином практично завжди, коли мова йде про відкриття рисунків формату *.bmp, необхідно згадувати про особливості формату DIB.

Формат DIB є незалежним від пристроїв виведення з тієї причини, що *.bmp-файли містять таблиці кольорів, які можна використати під час виведення зображення на будь-який пристрій. Натомість, DDB не містить таблиці кольорів. Зображення цього формату створюються під час роботи програми, існують лише у пам’яті комп’ютера і вилучаються, коли програма закінчує роботу.

Використання DDB є більш простим у порівнянні з DIB та характери­зує утилітарний підхід. Програмування DDB використовується для створення зображень, що використовуються під час вико­нання програми з допоміжною метою. Зокрема, з використанням DIB пов’язується відображення елементів керування та організація віртуальних вікон.

DDB є графічними зображеннями, що можуть відображатися тільки на одному визначеному типі фізичних пристроїв. Об’єкти зображень мають бути сумісними з певними пристроями виведення (звичайно – з екраном) і створюються за допомогою вже розглянутих функцій CreateBitmap() та LoadBitmap(). Інколи DDB-зображення називають GDI-зображеннями саме через те, що Windows оперує ними у прямому режимі без попередньої обробки. DDB не зберігають таблиці кольорів через те, що використовують кольори пристроїв, асоційованих з ними.

Зображення, незалежні від пристрою виведення (DIB), є графічними зображеннями, що можуть використовуватися на багатьох пристроях. Цей тип растрових зображень забезпечується таблицею кольорів, яку мають використовувати поточні пристрої виведення. Через таку організацію виведення растрове зображення типу DIB виглядає однаково на різних пристроях виведення, наприклад, у операційних системах Windows або DOS чи OS/2. Маючи такі властивості, DIB-зображення можуть зберігатися у формі дискових файлів. Усі файли з розширенням *.bmp, власне і відповідають формату DIB.

На жаль, на відміну від обробки зображень типу DDB, у MFC немає стандартних та простих засобів обробки незалежних растрових зображень.

Незалежно від того, чи створюються DIB-зображення у пам’яті комп’ютера чи зберігаються на диску, вони мають практично однакову струк­туру. DIB-зображення складається з певного набору структур, що містять по­вний опис необхідних даних. До цих структур належать: BITMAPFILEHEADER, BITMAPINFO, BITMAPINFOHEADER, і RGBQUAD. Їх опис та використання наведені у наступному підрозділі.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.