Лабораторна робота №2-3

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Формат BMP

Опис: BMP (від англ. Bitmap Picture) - формат зберігання растрових зображень, розроблений компанією Microsoft. Файли формату BMP можуть мати розширення .bmp, .dib і .rle.

В даному форматі можна зберігати лише одношарові растри. На кожен піксель в різних файлах може припадати різну кількість біт (глибина кольору). Microsoft пропонує битности 1, 2, 4, 8, 16, 24, 32, 48 і 64. У Бітність 8 і нижче він вказується індексом з таблиці кольорів (палітри), а при великих безпосереднім значенням. Колір же в будь-якому випадку можна задати тільки в колірній моделі RGB (як при безпосередньому вказівці в пікселі, так і в таблиці кольорів), але в Бітність 16 і 32 можна отримати Grayscale з глибиною до 16 і 32 біт відповідно. Часткова прозорість реалізована альфа-каналом різних Бітність, але при цьому прозорість без градацій можна побічно отримати RLE-кодуванням.

У більшості випадків пікселі зберігаються у вигляді відносно простого двовимірного масиву. Для Бітність 4 і 8 є RLE-кодування, яке може зменшити їх розмір. Формат BMP також підтримує вбудовування даних в форматах JPEG і PNG. Але останнім скоріше більше призначене не для компактного зберігання, а для обходу обмежень архітектури GDI, яка не передбачає пряму роботу із зображеннями відмінних від BMP форматів.

В останніх версіях формату BMP також з'явилися можливості по управлінню кольором. Зокрема, можна вказувати кінцеві точки, виробляти гамма-корекцію і вбудовувати колірні профілі ICC.

Принцип формування: Максимальний розмір неподільних осередків (виключаючи поля бітових структур): 32 біта і тому формат можна класифікувати як 32-бітний. Винятком можуть бути 64-бітові пікселі, але значення їх каналів можна обробляти і 16-бітними словами. Порядок байт в 16-бітних і 32-бітних осередках всюди від молодшого до старшого (little-endian). Цілі числа записуються в прямому коді, зі знаком - в додатковому. Якщо порівнювати з апаратними архітектурами, то порядок байт і формат чисел відповідає x86.

Чотири числових типів:

   BYTE - 8-бітове беззнаковое ціле.
   WORD - 16-бітове беззнаковое ціле.
   DWORD - 32-бітове беззнаковое ціле.
   LONG - 32-бітове ціле зі знаком.

У форматі Windows Bitmap під структурами розуміється блок з йдуть підряд осередками різного фіксованого розміру, у яких є всі ці імена (є в багатьох мовах програмування), а не щось складніше (наприклад, потік команд довільного розміру).

У деяких елементів формату вказана версія Windows, починаючи з якої він підтримується. Йдеться в першу чергу про основні бібліотеках WinAPI таких як gdi32.dll, shell32.dll, user32.dll і kernel32.dll. Інші компоненти операційної системи (наприклад, GDI +, .NET, DirectX) можуть мати інші ширші можливості.

Джерела:

Опис BMP

ПФ BMP

Формат JPG

Опис: один з популярних графічних форматів, застосовуваний для зберігання фотозображень і подібних до них зображень. Файли даних JPEG, зазвичай мають розширення (суфікси) .jpg, .jfif, .jpe або .jpeg. Однак з них .jpg є найпопулярнішим на всіх платформах. MIME-типом є image / jpeg.

Фотографія заходу в форматі JPEG зі зменшенням ступеня стиснення зліва направо Алгоритм JPEG дозволяє стискати зображення як з втратами, так і без втрат (режим стиснення lossless JPEG). Підтримуються зображення з лінійним розміром не більше 65535 × 65535 пікселів.

Файл з розширенням JPG - це теж саме, що і JPEG. Термін JPEG насправді - це скорочення від «Спільна група експертів фотографії» (Joint Photographic Experts Group), тому що це назва комітету, який розробив формат. Але Ви не зобов'язані це пам'ятати, тому рідко хто про це знає. Замість цього, пам'ятайте, що JPEG являє собою стислий формат файлу зображення. JPEG зображення не обмежені певним кількістю квітів, як GIF формат. Таким чином, формат JPEG краще для стиснення фотографій. Так що, якщо ви побачите велику, барвисте зображення в Інтернеті, то, швидше за все файлу у форматі JPEG.

Принцип формування: Файл JPEG містить послідовність маркерів, кожен з яких починається з байта 0xFF, засвідчує про початок маркера, і байта-ідентифікатора. Деякі маркери складаються тільки з цієї пари байтів, інші ж містять додаткові дані, що складаються з двухбайтового поля з довжиною інформаційної частини маркера (включаючи довжину цього поля, але за вирахуванням двох байтів початку маркера, тобто 0xFF та ідентифікатора) і власне даних. Така структура файлу дозволяє швидко відшукати маркер з необхідними даними (наприклад, з довжиною рядка, числом рядків і числом колірних компонентів стисненого

Гідності й недоліки: До недоліків стиснення за стандартом JPEG слід віднести появу на відновлених зображеннях при високих ступенях стиснення характерних артефактів: зображення розсипається на блоки розміром 8x8 пікселів (цей ефект особливо помітний на областях зображення з плавними змінами яскравості), в областях з високою просторовою частотою (наприклад, на контрастних контурах і кордони зображення) виникають артефакти у вигляді шумових ореолів. Слід зазначити, що стандарт JPEG (ISO / IEC 10918-1, Annex K, п. K.8) передбачає використання спеціальних фільтрів для придушення блокових артефактів, але на практиці подібні фільтри, незважаючи на їх високу ефективність, практично не використовуються. Однак, незважаючи на недоліки, JPEG отримав дуже широке поширення через досить високою (щодо існуючих під час його появи альтернатив) ступеня стиснення, підтримки стиснення повнокольорових зображень і відносно невисокою обчислювальної складності.


Джерела:

Опис та принцип формування

Формат GIF

Опис: 8-бітний растровий графічний формат, що використовує до 256 чітких кольорів із 24-бітного діапазону RGB. Формат було розроблено компанією CompuServe у 1987 році, і з того часу набув широкої популярності у всесвітній павутині завдяки своїй відносній простоті та мобільності. Одними із головних особливостей формату є підтримка анімації та прозорості.

Формат GIF підтримує анімаційні зображення, вони являють собою послідовність з кількох статичних кадрів, а також інформацію про те, скільки часу кожен кадр повинен бути показаний на екрані. Анімацію можна зробити циклічною. (англ. loop), тоді слідом за останнім кадром почнеться відтворення першого кадру.

Прозорість в GIF-анімації може використовуватись для того, щоб не зберігати черговий кадр повністю, а лише зміни наступного кадру відносно попереднього.

Недокументованою, але підтримуваною можливістю анімованого GIF, є можливість використання більше ніж 256 кольорів. Це досягається завдяки тому, що кожен кадр може містити свою палітру, відмінну від палітри інших кадрів.

Зображення у форматі GIF зберігається порядково, підтримується тільки формат з індексованою палітрою кольорів, яка може містити до 256 кольорів із 24-бітного діапазону RGB, хоча спочатку формат розроблявся тільки для підтримки 256-кольорової (8-бітної) палітри.

Один з кольорів у палітрі може бути оголошений «прозорим». У цьому випадку в програмах, які підтримують прозорість GIF (наприклад, більшість сучасних браузерів) крізь пікселі, зафарбовані «прозорим» кольором, буде видно фон. «Напівпрозорість» пікселів (технологія альфа-каналу) не підтримується. Принцип формування: Файли формату GIF мають блокову структуру. Це означає, що вони складаються з окремих блоків, які в більшості випадків ніяк не пов'язані один з одним. Програми, що не розпізнають деякі типи блоків, можуть просто пропускати їх - для цього у кожного нестандартного блоку в заголовку вказано його розмір. Ті, що йдуть один за іншим блоки графіки (картинки) складають анімацію. Вони змінюються на екрані і створюють ілюзію руху.

Структура: Файли формату GIF мають блокову структуру. Це означає, що вони складаються з окремих блоків, які в більшості випадків ніяк не пов'язані один з одним. Програми, які не розпізнають деякі типи блоків, можуть просто пропускати їх - для цього у кожного нестандартного блоку в заголовку вказано його розмір. Ті, що йдуть один за іншим блоки графіки (картинки) складають анімацію. Вони змінюються на екрані і створюють ілюзію руху. До або після них (або навіть між ними) в файлі можуть перебувати інші блоки:

Прихований текст, його можна побачити лише за допомогою спеціальних програм - наприклад, GIF-аніматорів, таких, як Ulead GIF Animator. Простий текст. Рядки символів з обмеженими можливостями форматування. В даний час не використовується. Блоки управління графікою, що задають параметри виведення окремих картинок. Глобальна та локальні колірні палітри, що визначають, які саме кольори будуть у картинок. Особливі блоки, які можуть використовуватися лише тими програмами, які знають про їхнє існування і призначення - наприклад, блок Netscape, що задає число циклів анімації. Без нього анімація після завантаження сторінки спрацьовує всього один раз. А в блоці Pianygif зберігаються назви окремих картинок для полегшення їх редагування.

Джерела:

Gif формат - структура

Формат PNG

Опис: PNG (вимовляється "Пінг") - растровий формат, призначений для зберігання і передачі растрових зображень: чорно-білих і альфа даних - до 16 біт, а кольорових - до 48 біт (truecolor). Він використовує прогресивний метод стиснення без втрат, дозволяє зберігати в файлі палітру, текстову інформацію та забезпечує прозорість.

Формат PNG спроектований для заміни застарілого і більш простого формату GIF, а також, в деякій мірі, для заміни значно складнішого формату TIFF. Формат PNG позиціонується передусім для використання в Інтернеті і редагування графіки.

PNG підтримує три основних типи растрових зображень:

Півтонування (з глибиною кольору 16 біт) Кольорове індексовані зображення (палітра 8 біт для кольору глибиною 24 біт) Повнокольорове зображення (з глибиною кольору 48 біт) Формат PNG зберігає графічну інформацію в стислому вигляді. Причому це стиснення проводиться без втрат, на відміну, наприклад, від JPEG з втратами.

Він має наступні основні переваги перед GIF: практично необмежену кількість квітів в зображенні (GIF використовує в кращому випадку 8-бітний колір); опциональная підтримка альфа-каналу; можливість гамма-корекції; двовимірна чересстрочная розгортка; можливість розширення формату для користувача блоками (на цьому заснований, зокрема, APNG). Формат GIF був розроблений фірмою CompuServe в 1987 році і спочатку був недоступний для вільного використання. Деякий час назад, до закінчення в 2004 році дії патентів на алгоритм стиснення LZW, що належали Unisys і використовуваних в GIF, його застосування у вільному програмному забезпеченні було утруднено. На даний момент такі труднощі зняті. PNG ж з самого початку використовує відкритий, непатентований алгоритм стиснення Deflate, безкоштовні реалізації якого доступні в Інтернеті. Цей же алгоритм використовують багато програм компресії даних, в тому числі PKZIP і gzip (GNU zip).

Формат PNG має більш високим ступенем стиснення для файлів з великою кількістю квітів, ніж GIF, але різниця складає близько 5-25%, що недостатньо для абсолютне панування формату, так як невеликі 2-16-кольорові файли формат GIF стискає з не меншою ефективністю.

PNG є хорошим форматом для редагування зображень, навіть для зберігання проміжних стадій редагування, так як відновлення і пересохраненіе зображення проходять без втрат в якості. Також, на відміну, наприклад, від TIFF, специфікація PNG не дозволяє авторам реалізацій вибирати, які можливості вони збираються реалізувати. Тому будь-яке збережене зображення PNG може бути прочитано в будь-якому іншому додатку, що підтримує PNG.

Різні реалізації алгоритму Deflate дають різну ступінь стиснення, тому були створені програми для стискання зображень з декількома варіантами з метою отримання найкращого стиснення - наприклад, форк pngcrush OptiPNG і advpng з комплекту AdvanceCOMP (використовує 7-Zip).

Принцип формування: PNG файл або потік даних складається з 8-байтовой розпізнавальної підпису, за якою слідують 3 або більше незалежних блоків даних, відповідних певної структурі. Кожен блок має своє власне визначення внутрішнього формату. Вони читаються по черзі, від початку до кінця файлу або потоку даних.

Джерела:

PNG формат

Опис та принцип формування


Формат SVG

Опис: мова розмітки масштабована векторна графіки, створений Консорціумом Всесвітньої павутини (W3C) і входить в підмножина розширюваної мови розмітки XML, призначений для опису двовимірної векторної і змішаної векторно / растрової графіки в форматі XML. Підтримує як нерухому, так і анімовану інтерактивну графіку - або, в інших термінах, декларативну і скриптовими. Не підтримує опис тривимірних об'єктів (не плутати з імітацією тривимірності шляхом світлотіні). Це відкритий стандарт, який є рекомендацією консорціуму W3C - організації, яка розробила такі стандарти, як HTML і XHTML. В основу SVG лягли мови розмітки VML і PGML. Розробляється з 1999 року. У 2001 році вийшла версія 1.0, в 2011 - версія 1.1, яка залишається актуальною до сьогоднішнього дня. В даний час в активній розробці знаходиться версія 2.

Переваги формату:

  • Текстовий формат - файли SVG можна читати і редагувати (при наявності деяких навичок) за допомогою звичайних текстових редакторів. При перегляді документів, що містять SVG графіку, є доступ до перегляду коду файлу, і можливість збереження всього документа. Крім того, SVG файли зазвичай виходять менше за розміром, ніж порівнянні за якістю зображення в форматах JPEG або GIF, а також добре піддаються стисненню.
  • Масштабованість - SVG є векторним форматом. Існує можливість збільшити будь-яку частину зображення SVG без втрати якості. Додатково, до елементів SVG документа можливо застосовувати фільтри - спеціальні модифікатори для створення ефектів, подібних застосовуваним при обробці растрових зображень (розмиття, видавлювання, складні системи трансформації та ін.) У тексті SVG-коду фільтри описуються тегами, візуалізацію яких забезпечує засіб перегляду, що не впливає на розмір вихідного файлу, забезпечуючи при цьому необхідну ілюстративну виразність.
  • Широке використання растрової графіки в SVG документах. Є можливість вставляти елементи з зображеннями в форматах PNG, GIF або JPG.
  • Текст в графіці SVG є текстом, а не зображенням, тому його можна виділяти і копіювати, він індексується пошуковими машинами, не потрібно створювати додаткові метафайли для пошукових роботів.
  • Анімація реалізована в SVG за допомогою мови SMIL (Synchronized Multimedia Integration Language), розробленого також консорціумом W3C. Підтримуються скриптові мови на основі специфікації ECMAScript. SVG-елементами можна керувати за допомогою JavaScript. Застосування скриптів і анімації в SVG дозволяє створювати динамічну і інтерактивну графіку. У SVG забезпечується подієва модель, відстежуються події (завантаження сторінки, зміна її параметрів, події миші, клавіатури та ін.) Анімація може запускатися по певній події (наприклад «onmouseover» або «onclick»), що надає графіку інтерактивність. У кожного елемента є свої власні події, до яких можна прив'язувати окремі скрипти.
  • SVG - відкритий стандарт. На відміну від деяких інших форматів, SVG не є чиєюсь власністю.
  • SVG документи легко інтегруються з HTML і XHTML документами. Зовнішній SVG підключаються через тег <object>, значення атрибута data - ім'я файлу з розширенням «.svg», що містить розмітку SVG, type - MIME-тип, тобто image / svg + xml. Атрибути width і height визначають розміри області SVG по горизонталі і по вертикалі. Елементи SVG сумісні з HTML і DHTML.
  • Сумісність з CSS (англ. Cascading Style Sheets). Відображенням (форматуванням і декоруванням) SVG елементів можна управляти за допомогою таблиці стилів CSS 2.0 і її розширень, або безпосередньо за допомогою атрибутів SVG елементів.
  • SVG надає всі переваги XML:
  1. Можливість роботи в різних середовищах.
  2. Інтернаціоналізація (підтримка Юнікоду).
  3. Широка доступність для різних додатків.
  4. Легка модифікація через стандартні API - наприклад, DOM. SVG підтримує стандартизовану W3C об'єктну модель документа DOM, забезпечуючи доступ до будь-якого елементу, що дає широкі можливості по динамічному зміни елементів, їх атрибутів і подій.
  5. Легке перетворення таблицями стилів XSLT. Як будь-який заснований на XML формат, SVG дає можливість використовувати для його обробки таблиці трансформації (XSLT). Перетворюючи XML-дані в SVG за допомогою простого XSL, можна легко отримати графічне представлення будь-яких даних, наприклад візуалізувати хімічні молекули, описаних на мові CML (Chemical Markup Language).

Недоліки формату:

  • SVG успадковує всі недоліки XML, такі як великий розмір файлу (втім, останній компенсується існуванням стисненого формату SVGZ, проте його використання на даний момент складно, так як SVGZ не має власного mimetype).
  • Складність використання в великих картографічних додатках через те, що для правильного відображення маленької частини зображення документ необхідно прочитати цілком.
  • Чим більше в зображенні дрібних деталей, тим швидше росте розмір SVG-даних. Граничний випадок - коли зображення являє собою білий шум. В цьому випадку SVG не тільки не дає ніяких переваг в розмірі файлу, але навіть дає програш по відношенню до растровому формату. На практиці, SVG стає невигідний вже задовго до того, як зображення дійде до стадії білого шуму.

Джерела:

Опис SVG


Порівняння форматів

Картинка в BMP - [1]Картинка в GIF - [2]Картинка в JPG - [3]Картинка в PNG - [4]Картинка в SVG - [5]
BMP JPEG GIF PNG SVG
Тип Растровий Растровий Растровий Растровий Векторний
Анімація не підтримується не підтримується покадрова покадрова динамічна графіка
Прозорість Не зберігає Не зберігає Можлива Можлива Можлива
Методи стиснення RLE JPEG LZW LZ77 SVGZ
Розмір великий малий малий звичайний великий