GIF (від англ. Graphics Interchange Format — «формат обміну зображеннями») — 8-бітний растровий графічний формат, що використовує до 256 чітких кольорів із 24-бітного діапазону RGB. Формат було розроблено компанією CompuServe у 1987 році, і з того часу набув широкої популярності у всесвітній павутині завдяки своїй відносній простоті та мобільності. Одними з головних особливостей формату є підтримка анімації та прозорості.

Graphics Interchange Format (GIF)
Розширення файлу:..gif
MIME-тип:image/gif
Type code:GIF
GIFf
Узагальнений ідентифікатор типу:com.compuserve.gif
Магічне число:GIF87a/GIF89a
Розробник:CompuServe
Тип формату:Графічний формат
Приклад застосування GIF-формату. Планета Земля.
Анімований GIF показує можливість подолання обмеження в 256 кольорів. Якби пауза між кадрами була нульовою, то ми відразу побачили б зображення, яке використовує 1859 кольорів.
GIF-анімація руйнування будинку під час землетрусу.

Для стискання файлів використовує LZW-компресію.

Історія

ред.

Існує дві специфікації формату GIF — GIF 87a і GIF 89a.

Перша специфікація була створена в 1987 компанією CompuServe для заміни застарілого формату RLE. GIF став популярним під час розвитку інтернету, оскільки, на відміну від інших форматів, дозволяв використовувати більш компактні за розміром файлу зображення на вебсторінках. Хоча до теперішнього часу формат багато в чому застарів, і для його заміни створені формат PNG для статичних зображень та APNG для анімованих зображень, він як і раніше широко використовується. GIF-формат залишається затребуваним при створенні анімації.

Область застосування

ред.

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

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

Анімовані зображення

ред.

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

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

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

GIF-анімація використовує можливість GIF-формату зберігати у файлі декілька зображень. Якщо в GIF-файлі міститься декілька зображень, то вони будуть показані по черзі, як невеликий фільм. Однак на відміну від звичайного фільму, у якому швидкість відтворення визначається кількістю кадрів за секунду, у GIF-файлі зберігається ряд параметрів, що визначають, яким чином і як довго кожне зображення буде показуватися. Крім того, зображення GIF-файлу можуть бути різного розміру і розміщені в потрібній позиції екрану незалежно від зображень інших кадрів. Кожен GIF-файл містить таблицю індексів кольорів, яку називають індексною колірною палітрою. Вона визначає, які кольори використовуються в зображенні і який індекс відповідає кожному кольору. Залежно від способу збереження для індексу потрібно до 4 байтів даних, тому зображення з 256 кольорами має палітру розміром до 1024-х байт. В анімованих GIF-файлах використовують два типи палітр:

  1. глобальну (Global Palette), що визначає кольори кожного зображення анімації за замовчуванням;
  2. локальну (Local Palette), яка є унікальною для кожного окремого кадру анімації.

При додаванні зображення в GIF-анімацію можна вказати, яку з палітр варто використовувати. Однак не слід прагнути до зменшення розміру файлу, використовуючи тільки глобальну палітру. Щоби забезпечити високу якість анімації, для кадрів зображень, які значно відрізняються від основних чи хоча б від попереднього кадру, варто використовувати локальну палітру. Існує велике розмаїття програм для створення анімаційних GIF: Ulead GIF Animator, GIFFY, GIF Construction Set 32, Microsoft GIF Animator, Alchemy GIF Animator, Animated GIF Editor 95 та інші. Існує кілька способів зберегти анімацію. Найочевиднішим способом є створення GIF-файлу, однак при цьому варто враховувати можливості його оптимізації. Крім того, анімацію можна зберегти у файлі, що виконується, для якого не потрібно програми-програвача, а також в одному з форматів відео. GIF Animator дозволяє також експортувати частину кадрів анімації зі створенням нового анімованого GIF-файлу або групи окремих GIF-файлів, що містять по одному кадру. GIF Animator дозволяє легко і просто створити HTML-код для GIF-файлу, який потім може бути розміщений на відповідній Web-сторінці. При цьому потрібно, щоб GIF-файл знаходився в тій же папці, що і Web-сторінка. GIF-анімація, що вставляється, може містити також гіперпосилання на задану URL-адресу. Існують три основних способи істотного скорочення розміру анімованого GIF-файлу:

  • скорочення колірної палітри;
  • зменшення кількості кадрів (шарів);
  • оптимізація окремих кадрів анімації.

Патенти

ред.

GIF спочатку використовував пропрієтарні алгоритми, проте термін дії патентів на них закінчився. У США патент на алгоритм стиснення LZW, що використовується в GIF (патент № 4 558 302) минув 20 червня 2003 року. Термін дії канадського патенту завершився 7 липня 2004. Дія патенту для Великої Британії, Франції, Німеччини та Італії завершилася 18 червня 2004 року, а для Японії — 20 червня 2004 року.

Посилання

ред.

Джерела

ред.
  • Інформатика: Комп'ютерна техніка. Комп'ютерні технології. Посібник/ За ред. О. І. Пушкаря — К.: Видавничий центр «Академія», 2001.- 696 с.
  • Білан С. М., Коваль Д. М. Засоби машинної графіки. Навчальний посібник. — Вінниця, ВДТУ, 2000 р.
  • Информатика. Базовый курс/ Симонович С. В. и др.- СПб: Питер, 2001.- 640 с.