МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
Бердичівський політехнічний коледж
КОНТРОЛЬНА РОБОТА
з предмету “Комп’ютерна графіка”
(варіант №15)
Виконав:
студент групи ПЗС-504
Томашов О.В.
Перевірив викладач:
Козік В.Ю.
м. Бердичів
2007 р.
1. Растрові формати зображень
Растрові формати служать для опису растрової графічної інформації. Кожен окремий піксел зображення представляє самого себе, поза залежністю від його розташування й ролі, що він грає в рисунку. Найпоширенішими з них є: tiff, bmp, pcx, gif, jpeg, png. Графічні компоненти всесвітньої мережі Internet у переважній більшості представлені останніми трьома форматами.
Роздільність файлів таких форматів, як GIF, JPEG, BMP залежить від відеосистеми комп'ютера. У старих комп'ютерах Macintosh приходилося 72 піксела на дюйм екрана (екранна роздільність), для Windows єдиного стандарту не склалося, але сьогодні найчастіше вживається значення 96 пікселів на дюйм екрана. Однак тепер ці параметри стали досить умовними, тому що майже усі відеосистеми сучасних комп'ютерів дозволяють змінювати кількість відображуваних на екрані пікселів. Растрові файли, призначені для підготовки видань до друку, мають, подібно більшості векторних форматів, параметр Print Size — друкований розмір [94].
Растрові формати один від одного відрізняються наступними властивостями: колірними моделями, методами ущільнення, максимальним розміром зображення, який вони можуть забезпечити, шарами різних типів, наявністю Alpha-каналу або каналу плашкових (spot)-кольорів, можливістю здійснювати анімацію, наявністю черезрядкового розгорнення тощо. Деякі характеристики популярних растрових форматів наведено у таблиці 6.1.
Формат BMP
Формат BMP (від слова bitmap) широко використовується в ОС Windows для растрової графіки. Наприклад, якщо вам потрібно створити тло вашого робочого столу, то необхідно записати відповідне зображення в цьому форматі.
Загальна структура BMP-файлу така:
Заголовок файлу BMP називається BITMAPFILEHEADER. У ньому міститься загальний опис файлу. Заголовок має такі поля, наведені в таблиці 6.2.
Далі у файлі йде ще один заголовок — BITMAPINFOHEADER, у якому зберігається опис розмірів растра й колірного формату пікселів (табл. 6.3).
Потім у файлі міститься палітра у вигляді декількох записів RGBQUAD. Кожен запис містить чотири поля (табл. 6.4).
Кількість записів RGBQUAD дорівнює кількості використовуваних кольорів.
Палітра відсутня, якщо число бітів на піксел дорівнює 24. Також палітра не потрібна й для деяких колірних форматів 16 і 32 біти на піксел.
Після палітри (якщо вона є) у файлі BMP записується растр у вигляді бітового (а точніше, байтового масиву). У бітовому масиві послідовно записуються байти рядків растра. Кількість байтів у рядку повинна бути кратна чотирьом, через це, якщо кількість пікселів по горизонталі не відповідає такій умові, то праворуч у кожен рядок дописується певна кількість бітів (вирівнювання рядків на межу подвійного слова).
Можна сказати, що файли BMP мають найбільший розмір порівняно з файлами інших растрових форматів. Растр тут зберігається майже в тому вигляді (якщо не враховувати вирівнювання рядків на довжину, кратну 4 байтам), в якому він записується в оперативну пам'ять для відображення та обробки. Зазвичай програми так і записують файли BMP, хоча в цьому форматі передбачене ущільнення, (компресія, compressing, англ.) растра методом RLE. BMP-файли з компресією можуть мати розширення DIB або RLE.
Існує різновид формату BMP для операційної системи OS/2.
Формат Bitmap32
Це порівняно новий формат, створений на базі формату BMP, від котрого відрізняється тим, що дані про одну точку зберігаються не в 24, а в 32 бітах. Додаткові 8 бітів використовуються для Alpha-каналу. Формат доки що не одержав поширення, але після появи Windows XP, де Alpha-канал був узаконений на рівні ядра системи, формат отримав гарні перспективи на майбутнє.
Отже, для розроблювана цей формат зручний, насамперед, через збереження додаткової складової прозорості, яка зберігається усередині файлу з текстурою.
Формат PCX
Формат PCX запропонований компанією Z-Soft у програмі Paintbrush. Може бути використаний на платформі Macintosh, хоча був написаний для PC. Цей формат застосовувався багатьма компаніями, що спеціалізуються в області програмного забезпечення. Він зручний для зберігання зображень типу ділової графіки (креслення, діаграми, схеми тощо). Підтримуються колірні формати 1, 4, 8 та 24 біти на піксел. До недоліків PCX слід віднести непристосованість до запису фотографій, а також наявність численних версій.
У форматі PCX використаний один із варіантів алгоритму ущільнення RLE (від англійського Run Length Encoding — групове кодування).
RLE — один із найстаріших і найпростіших алгоритмів компресії графіки. Основна його ідея така: якщо в рядках растра зустрічаються ланцюжки з однакових пікселів, наприклад,
то можна замінити ланцюжки на пари чисел — (лічильник повторень, значення). Для окремих пікселів, що не входять до ланцюжків, лічильник не потрібен:
Чим більше ланцюжків у растрі та чим вони довші, тим більший ефект ущільнення.
Як програма може прочитати код RLE? Потрібно якось розрізнювати лічильник та значення. Для цього необхідне спеціальне кодування. У версії RLE для PCX ознакою лічильника служать одиниці у двох лівих бітах (llxxxxxx) поточного байта кодованого масиву. Відповідно 6 бітів, що залишилися, означають кількість повторів у ланцюжку (від 1 до 63) наступного за лічильником значущого байта. Таким чином, рядок із 63 повторюваних байтів перетворюється у два байти, тобто, для таких ланцюжків досягається ущільнення майже в 32 рази.
Окремі байти растра, що не утворюють ланцюжків, кодуються двома способами, в залежності від їхнього значення. Якщо два лівих біти не одиниці, то байт кодується одним власним значенням. Окремі байти виду llxxxxxx доводиться кодувати парою байтів (лічильник повторень, значення), причому лічильник тут дорівнює одиниці:
Спосіб кодування, прийнятий у форматі PCX, можна вважати певним компромісом між максимальною довжиною ланцюжка та вірогідністю кодування окремих байтів двома байтами. Так, довжина ланцюжка обмежена 63, але вірогідність наявності у растрі окремих байтів виду 11xxxxxx становить 1/4. Якщо б ознакою лічильника був тільки один лівий біт (lxxxxxxx), то можна було б кодувати вдвічі довші ланцюжки, але окремих значущих байтів виду lxxxxxxx вже може бути вдвічі більше, ніж llxxxxxx.
Таким чином, для растра, який містить неповторювані байти виду llxxxxxx, алгоритм RLE дасть зворотний результат — замість ущільнення буде збільшення (до двох разів). Це часто спостерігається при застосуванні групового кодування до кольорових фотографій, особливо типу 24 біти на піксел. Зазвичай програми, що використовують цей алгоритм ущільнення (наприклад, програма PC Paintbrush), при виникненні такої ситуації записують графічні дані у формат PCX не ущільненими.
Важливим моментом для кодування 256-колірних зображень є правильний вибір палітри. Якщо індекси llxxxxxx надано кольорам, які рідко зустрічаються в даному растрі, то вірогідність заміни одного байта двома меншає.
2. Векторні формати зображень
Ці графічні формати служать для збережених зображень у вигляді сукупності геометричних примітивів — ліній, дуг, прямокутників, еліпсів тощо. Графічні формати цього типу складаються або зі списку примітивів, або містять у собі набір інструкцій, команд для побудови примітивів. Не виключається й комбінація цих способів. У векторному вигляді зберігають інформацію системи автоматизованого проектування, наприклад, AutoCAD, програми, що створюють ілюстративну графіку, такі як CorelDraw. Векторні плоттери обробляють зображення тільки у векторних форматах. Векторні формати можуть містити або впроваджені у файл растрові об'єкти, або посилання на растровий файл (технологія ОРІ).
Векторні зображення зустрічаються в Інтернеті не дуже часто, хоча зараз досить швидко поширюється формат Shockwave Flash фірми Macromedia. Цей формат спеціально розроблявся для використання в Інтернеті, він здатний зберігати гіпертекстові посилання, графіку, анімацію тощо. Для перегляду Flash-графіки потрібний спеціальний програмний модуль, який вільно поширює фірма Macromedia.
При передачі даних з одного векторного формату в іншій, виникають ускладнення, пов'язані з використанням програмами різних описів графічних примітивів, різних алгоритмів при побудові векторних об'єктів і опису растрів. Фірмою Aldus розроблена технологія ОРІ (Open Prepress Interface), яка дозволяє імпортувати замість оригінальних файлів їхні образи, створюючи в програмі лише копію низької роздільності (ескіз) і посилання на оригінал. У процесі друку на принтері ескізи замінюються на оригінальні файли. Застосування ОРІ дає можливість заощаджувати ресурси комп'ютера (насамперед, пам'ять) і підвищувати його продуктивність. ОРІ широко використовується при роботі з імпортованими графічними файлами, зокрема, у програмах FreeHand і QuarkXPress [94].