- •Розділ 1. Основні компоненти електронних видань
- •Розділ 1. Основні компоненти електронних видань
- •1.1. Текстова інформація
- •1.2. Напівтонові і кольорові ілюстрації
- •1.3. Анімаційна графіка
- •1.4. Відеоінформація
- •1.5. Аудіоінформація
- •Розділ 2. Технології гіпертекстових видань
- •2.1. Функції гіпертекстових електронних видань
- •2.2. Принципи побудови гіпертекстових видань
- •2.3. Математична модель гіпертексту
- •2.4. Гіпертекстові Web-документи
- •2.5. Підготовка публікацій у середовищі Adobe Acrobat
- •2.6. Технологія Help-файлів
- •2.7. Засіб доставки електронних видань
- •2.8. Класифікація і загальні принципи оформлення електронних видань
- •Розділ 3. Цифрове представлення текстової інформації
- •3.1.Стандарти кодування символів ascii, ansi, кои-8 і unicode
- •3.2.Формат pdf
- •3.3.Формат розмітки тексту rtf
- •Розділ 4. Графічні формати
- •4.1. Растровий формат gif
- •4.2. Формат графічних файлів png
- •4.3. Графічний формат jpeg
- •4.4. Формат tiff
- •5.1. Сімейство форматів mpeg
- •5.2. Звукові формати
- •5.3. Анімаційні файлові формати fli, flc, cel
- •Розділ 6. Програми перегляду Web-публікацій
- •6.1. Доступ до Web-сторінки в Internet
- •6.2. Програма перегляду ms Internet Explorer
- •6.3. Програма перегляду Netscape Navigator
- •7.4. Мова JavaScript
- •Визначення файлу для JavaScript
- •Використання JavaScript-виразів в якості значень html-атрибутів
- •Оголошення JavaScript-програми як оброблювача подій
- •7.5. Мова програмування сценаріїв php
- •Завантаження файлів
- •Регулярні вирази
- •7.6. Мова Perl
- •7.7. Мова моделювання віртуальної реальності vrml
- •Розділ 8. Програмування Web-сторінок у мовному середовищі html
- •8.1. Структура і форматування html-документа
- •8.2. Таблиці
- •8.4. Форми
- •8.5. Фрейми
- •8.8. Гіперпосилання
- •8.9. Таблиці стилів
- •Розділ 9. Автоматизація створення Web-публікацій. Програмний пакет Macromedia Dreamweaver
- •9.1. Призначення та функціональні можливості пакету
- •9.2. Структурна схема програмного пакету
- •9.3. Інтерфейс користувача і принципи його організації
- •9.4. Деякі типові процедури пакета Dreamweaver
- •9.4.1. Робота з текстом
- •9.4.2. Вставка зображень
- •9.4.3. Створення карти зображення
- •9.4.4. Робота з таблицями
- •9.4.5. Створення форм
- •9.4.6. Робота з фреймами
- •9.4.7. Робота із шарами
- •9.5. Використання інтерактивних можливостей і анімації
- •9.6. Створення Web-сайту
- •Розділ 10. Програмний пакет ms FrontPage
- •10.1. Функціональні можливості програмного пакету
- •10.2.Структурна схема пакету
- •Розділ 11. Створення мультимедійних видань. Програмний пакет Macromedia Director
- •11.1.Функціональні можливості програмного середовища
- •11.2. Інтерфейс користувача
- •Література
- •Технологія розробки електронних видань
Розділ 4. Графічні формати
Для представлення графічних ілюстрацій в електронних виданнях використовується ряд графічних форматів. На даний час широке застосування знайшла всесвітня глобальна мережа Internet (World Wide Web), в якій основними форматами графічних даних є GIF і JPEG. Починає активно використовуватись також графічний формат PNG, покликаний замінити фомат GIF у Web-публікаціях. В електронних виданнях на CD-ROM, крім добре стискаючих растрових форматів, використовуються векторні та формовизначені формати (які використовують концепцію метафайлу). Даний розділ присвячений найбільш популярним графічним форматам електронних видань GIF, PNG, TIFF та JPEG.
4.1. Растровий формат gif
Файловий растровий формат GIF (Graphics Image Format) був запропонований фірмою CompuServe Inc. для протокола передачі кольорових зображень в глобальних мережах. З його допомогою організовано обмін між графічними і файлами, що містять елементи графіки. Цей формат застосовується для зберігання декількох растрових зображень в одному файлі і використовується для обміну растровими даними між платформами та системами.
GIF – один з небагатьох форматів, що використовує ефективний алгоритм стиснення, який майже не поступається перед програмами-архіваторами. GIF-файли не потрібно архівувати, оскільки це рідко дає відчутний виграш в об’ємі. Формат GIF, головною перевагою якого є мінімальний розмір файлів, до цього часу зберігає своє значення основного графічного формату World Wide Web.
Ще одна особливість формату GIF полягає в тому, що розробники змінили порядок послідовності даних у файлі. За рахунок цього зображення, що передається, промальовується зверху вниз зі зміною чіткості та детальності. Тобто зображення стає чіткішим та детальнішим в міру надходження інформації з мережі. Для цього файл зображення формується при записі так, щоб спочатку йшли всі рядки пікселів з номерами, кратними восьми (перший прохід), потім чотирьом (другий прохід), потім двом, і, нарешті, - останній прохід – всі решту рядки з непарними номерами. Під час отримання та декодування такого файлу кожен наступний прохід заповнює „пропуски” в попередніх, поступово наближаючи зображення до вихідного стану.
На даний час формат GIF підтримує обмін не тільки графікою, але й різноманітними мультимедійними даними. В першу чергу це пояснюється його властивістю зберігати велику кількість зображень-кадрів. Тому формат GIF можна розглядати як анімаційний. Для стиснення інформації використовується алгоритм LZW.
GIF, на відміну від багатьох растрових форматів, для збереження використовує блоки даних та додаткову протокольну інформацію. Блоки даних містять підблоки та інформаційні поля. Кожен підблок даних починається з однобайтового лічильника, який, приймаючи значення в діапазоні від 1 до 255, вказує кількість байтів даних, що йдуть після байта лічильника. Підблоки можуть об’єднуватись в неперервні групи (байт лічильника, байти даних, байт лічильника, байти даних і т.д.).
Послідовність з одного чи кількох підблоків даних завершується байтом лічильника, що має значення 0.
Формат GIF дає змогу зберігати растрові дані в пікселях з глибиною кольору від 1 до 8 біт. Зображення записуються із застосуванням кольорової моделі RGB та даних з палітри.
Формат дає змогу зберігати зображення розміром до 64 000 пікселів, вибирати 256 кольорів в 64-мільйонній палітрі, забезпечує швидке розпакування при перегляді, ефективне стиснення та апаратну незалежність. Також формат дає змогу зберігати в одному файлі декілька зображень, але ця можливість, як правило, використовується при кодуванні анімації.
Існують дві специфікації GIF. Перша відноситься до формату GIF87а, в якому передбачається запис багатьох зображень, інша – до формату GIF89а, що орієнтований на збереження як текстових, так і графічних даних в одному файлі.
GIF87a передбачає наступні можливості GIF-файлу:
Чергування (interlacing). Спочатку завантажується тільки „основа” зображення, потім, в міру завантаження, воно деталізується. Це дає змогу у повільних мережах не вантажити весь графічний файл повністю для того, щоб отримати про нього певне уявлення.
Стиснення (compression) за алгоритмом LZW, що забезпечує найменший об’єм файлу.
Розміщення декількох зображень в одному файлі.
Розміщення зображення на логічному екрані. Тобто формат дає змогу визначити логічну екранну область для виводу зображень і помістити їх в довільному місці цієї області.
Надалі цей стандарт був розширений специфікацією GIF89a, яка додала наступні можливості:
Включення в графічний файл коментарів (не відображаються на екрані, але можуть бути прочитані програмою, що підтримує GIF89a).
Керування затримкою перед зміною кадрів (задається в 1/100с чи як очікування вводу користувача).
Керування видаленням попереднього зображення. Попереднє зображення може бути залишене, замінене на колір фону чи на те, що було перед ним.
Визначення прозорого кольору.
Вивід тексту.
Створення керуючих блоків прикладних програм (application-specific extensions). Всередині GIF-файлу можна створити блок, який буде ігноруватись всіма програмами, крім тої, для якої він призначений.
Специфікація GIF87а.
Це первинна версія формату GIF, яка була випущена в травні 1987 року. Вона читається більшістю програмних ужитків, що підтримують формат GIF.
Кожен файл починається з Заголовку (Ідентифікатора) та Дескриптора логічного екрану, після яких може іти Глобальна таблиця кольорів. Кожна з цих областей має постійне зміщення від початку файлу. Будь-яке зображення, записане в файлі, містить власний Локальний дескриптор зображення, Локальну таблицю кольорів (необов’язково) і Блок даних зображення. Останнім полем в форматі GIF є символ Завершувач, який вказує на кінець даних GIF.
Заголовок має довжину 6 байт і використовується для ідентифікації файлу GIF. Заголовок включає Сигнатуру заголовку (Signature) і Версію формату (Version) GIF.
Поле Signature має довжину 3 байти і містить в якості ідентифікатора обов’язкові символи „GIF”. Ні один з файлів не буде розпізнаний ужитком як файл зображення GIF, якщо він не починається з цих трьох байт.
Поле Version також має довжину 3 байти і вказує версію файлу GIF (87а чи 89а).
Дескриптор логічного екрану включає дані про ширину і висоту відображуваного екрану в пікселях, інформацію про екран і таблицю кольорів, індекс кольору фону і коефіцієнт стиснення пікселів.
Поля Ширина і Висота (1-4 байти) визначають мінімальну роздільну здатність екрану, що необхідна для відображення малюнка. Якщо пристрій відображення не здатний підтримувати вказану роздільну здатність, то для правильного відтворення зображення слід масштабувати. Значення „pixel” також визначає кількість кольорів у зображенні. Діапазон значень даного поля складає від 0 до 7, що відповідає 1-8 бітам. Це відповідає діапазону від 2 (чорно-білі зображення) до 256 кольорів. Біт 3 в байті 5 зарезервований для майбутніх визначень і повинен бути нульовим.
Отримуване значення коду кольору кожного пікселя при висвічуванні зображення буде відповідати найближчому доступному кольору з таблиці кольорів дисплея. Кольорові компоненти представляють собою значення відносної інтенсивності від нульової (0) до повної (255). Білий колір може бути представлений як (255, 255, 255), чорний – як (0, 0, 0), а жовтий – (180, 180, 0). При висвічуванні на дисплеях, які підтримують менше 8 біт на кольоровий компонент, використовують старші біти.
Якщо глобальна таблиця кольорів відсутня, то кожне зображення повинне мати свою особисту локальну таблицю кольорів, яка заміняє глобальну таблицю. Якщо ні глобальної, ні локальної кольорових таблиць немає, то таблиця кольорів може задаватись по замовчуванні.
Дані зображення.
За Заголовком, Дескриптором логічного екрану і даними Глобальної таблиці кольорів ідуть один чи кілька розділів даних зображення. Кожне зображення у файлі GIF записується окремо, зі своїми Дескриптором зображення і Локальною таблицею кольорів. Локальний Дескриптор зображення розміщений перед відповідним розділом даних щодо конкретного зображення. Кожен дескриптор зображення розпочинається з символа-розділювача зображень. Роль розділювача зображень полягає в синхронізації при вході в дескриптор зображення. Це доцільно, якщо GIF-файл включає більше, ніж одне зображення. Цей символ визначений як шістнадцятковий код комою («,»). Як тільки цей символ зустрічається між даними про зображення, безпосередньо за ним іде дескриптор зображення. Будь-який символ між кінцем попереднього зображення і символом-розділювачем зображення ігнорується. На думку розробників, це дасть змогу при майбутніх модифікаціях GIF допускати присутність декількох форматіві правильно ігнорувати їх старими декодерами. Локальний дескриптор зображення включає наступні компоненти: ідентифікатор дескриптора зображення; положення зображення на екрані по осі Х; положення зображення на екрані по осі Y; ширину зображення в пікселях; висоту зображення в пікселях; інформацію про зображення і дані таблиці кольорів. В розділі інформації про зображення визначено прапорці, що вказують на присутність локальної таблиці для пошуку кольорів і визначення послідовності висвічування пікселів: прапорець локальної кольорової таблиці (біт 0), прапорець чергування (біт 1), прапорець сортування (біт 2), розмір елемента локальної таблиці кольорів (біти 5-7). Біти 3-4 зарезервовані.
Значення прапорця локальної таблиці кольорів рівне 1, якщо для даного зображення існує локальна таблиця кольорів. Якщо значення цього прапорця рівне 0, то локальна таблиця кольорів відсутня і замість неї слід використовувати глобальну таблицю кольорів.
Значення прапорця чергування дорівнює 1, якщо стрічки зображення чергуються, і 0 у протилежному випадку. Дані зображення GIF зберігаються у виді стрічок розгортки і попіксельно. Стрічки розгортки, з яких складається зображення, зазвичай зберігаються у визначеній послідовності - з першої до останньої. Формат GIF підтримує й альтернативний спосіб збереження стрічок растрових даних - у порядку чергування.
У першому випадку стрічки растрових даних послідовно записуються, починаючи з першої і до останньої. Це типовий спосіб збереження даних для більшості растрових файлів. У режимі чергування стрічки розгортки представлені у наступному порядку: спочатку записуються всі парні рядки, а потім усі непарні.
GIF використовує чотирипрохідну схему чергування. Перший прохід починається з рядка 0, потім читається восьмий рядок растрових даних. Другий прохід починається з четвертого рядка, потім знову читається восьмий рядок даних. Третій прохід починається з другого рядка, а потім читається четверта стрічка. Останній прохід починається з першої і далі читається друга. За цією схемою обробляються усі рядки зображення.
Значення прапорця сортування визначає, чи відсортовані елементи в таблиці кольорів за ступенем їх важливості. Визначається це частотою появи кольору в зображенні. Значення 1 прапорця вказує на відсортовану колірну таблицю, значення 0 - на таблицю з невідсортованими колірними елементами. Підполе „Прапорець сортування” має коректне значення тільки у версії GIF89a; у версії 87а воно зарезервоване і жорстко встановлене в 0.
Значення „Розміру елемента локальної таблиці кольорів” показує кількість біт, що припадають на елемент локальної таблиці кольорів.
Дані зображення у файлі GIF стиснені за допомогою схеми кодування LWZ, що використовує алгоритм стиснення, характерний більшості архіваторів файлів.
Звичайно LWZ-закодовані дані зображення в графічному файлі впорядковуються у неперервний потік і читаються від початку до кінця. Проте формат GIF зберігає закодовані дані зображення у вигляді послідовностей підблоків даних.
Кожен підблок даних розпочинається з лічильника байтів. Значення лічильника може змінюватися в діапазоні від 1 до 255, визначаючи кількість байтів даних у даному підблоці. Дані підблоку ідуть безпосередньо за лічильником байтів. Неперервна група підблоків даних завершується байтом з нульовим значенням. Цей байт може розглядатися або як символ-обмежувач, або як підблок зі значенням лічильника, рівним 0. У будь-якому випадку він вказує на те, що даних більше немає.
Файли GIF не містять неперервного потоку закодованих LWZ-даних. Ці дані пересилаються декодеру в міру зчитування підблоків. Більшість підблоків, в яких зберігаються дані зображення, мають довжину 255 байт. Отже, саме цей розмір найкраще підходить для буфера, де і зберігаються закодовані дані зображення.
Декодовані дані зображення GIF вирізняються досить простим форматом. Кожен піксель у декодованій стрічці розгортки завжди має розмір 1 байт і містить значення індексу з глобальної або локальної таблиці кольорів. Структура файлу формату GIF допускає збереження колірної інформації безпосередньо в даних зображення, але в специфікації GIF дана можливість не передбачена. Тому навіть однобітні зображення повинні використовувати 8-бітне значення індексу і таблицю кольорів з двох елементів.
Термінатор GIF.
Для фіксації процесу закінчення файлу зображення GIF використовується один байт даних, що розглядається як останній символ файлу. Значення цього байта завжди дорівнює 3Bh (шістнадцятковий код символа «;»).
Термінатор (або завершувач) сприймається декодером GIF як сигнал закінчення процесу обробки зображення, тому повинний бути присутнім у кожному GIF-файлі.
Розширений блок GIF.
Для того щоб забезпечити розширення властивостей формату GIF, необхідний механізм для визначення методу пакування всередині потоку даних GIF. Таке розширення було визначене і задокументоване CompuServe для того, щоб передбачити керований спосіб удосконалень формату. Розширений блок GIF архівується способом, подібним на той, що використовувався для растрових даних, але без стискання.
Формат GIF89a
Стандарт GIF був розширений специфікацією GIF89a, що додала форматові зазначених вище функціональних можливостей.
Структура файлу GIF89a.
Файл GIF89a складається з блоків, розташованих у визначеній послідовності. Виділяють блоки трьох типів:
1.Керуючі блоки: заголовок, опис логічного екрану, керування графічними розширеннями, ознака закінчення - визначають, як будуть оброблятися зображення.
2.Блоки зображення: зображення, текст, опис палітри - містять дані самого зображення.
3.Спеціальні блоки: коментарі, прикладні розширення - не впливають на зображення, але обробляються прикладними програмами. Серед таких блоків варто виділити прикладний блок Netscape Loop, що присутній практично в кожній анімації і визначає кількість циклів повторень.
Загальна схема проходження цих блоків:
Заголовок (ідентифікатор) - визначає формат файлу (GIF87a або GIF89a);
Опис логічного екрану (задається розмір області екрану, в якій відображується даний файл).
Опис глобальної палітри (необов'язково).
Довільна кількість блоків зображень (у тому числі текстових) або пар блоків «керування графічними розширеннями - зображення». Блок керування графічним розширенням може містити в собі вказівник на локальну палітру, розташування на логічному екрані, затримку і спосіб видалення зображення і впливає тільки на наступний за ним безпосередньо блок зображення.
Ознака кінця файлу.
Коментарі і спеціальні блоки не можуть розташовуватися: до опису глобальної палітри (якщо він є) або до опису логічного екрану; між блоком керування і відповідним йому блоком зображення; після ознаки закінчення файлу.
GIF не єдиний формат, що дає змогу кодувати і стискати растрову графіку. Певні можливості стискання є у форматах BMP, PCX і багатьох інших. Проте GIF - один з небагатьох форматів, які використовують алгоритм стиснення, що майже не поступається за ефективністю програмам-архіваторам.
Можливості економії в GIF не вичерпуються тільки лише компресією даних. Однією з головних переваг цього формату є те, що він дає змогу довільно задавати кількість кольорів, або розмір палітри, для зображення.
Зазвичай використовується метод апроксимації, що отримав назву дифузії (diffusion або dithering). При цьому області, що в оригіналі були залиті однорідним кольором, після перетворення заповнюються сумішшю пікселів різних кольорів, розкиданих випадковим чином. Як правило, кожен відсутній у скороченій палітрі колір передається пікселями двох найближчих до нього кольорів нової палітри. В результаті зображення набуває характерної зернистої, шорсткої фактури. Дуже часто дифузія виявляється єдиним способом, що дає змогу хоча б наближено адекватно передати вихідні кольори за допомогою палітри, де цих кольорів немає.
У GIF89a введена черезрядкова розгортка. Прийнявши з мережі черговий прохід черезрядкового GIF-файлу, броузер не тільки вимальовує кожен рядок на своєму місці, але й заповнює всі проміжки між рядками копіями попередньої стрічки (інакше після першого проходу зображення було б майже невидимим). Тому спочатку черезрядковий GIF складається з широких горизонтальних смуг, які поступово звужуються в міру завантаження зображення.
Можливість запису черезрядкових файлів була введена у другій версії формату GIF (GIF89a), опублікованій в 1989 р. У цій же версії з'явилися й інші важливі вдосконалення, а саме: можливість вказувати прозорий колір і записувати в один файл кілька незалежних картинок-кадрів динамічного мультиплікаційного зображення.
До недоліків розглянутого формату можна віднести обмежену кількість використовуваних кольорів (до 256) і необхідність складення ліцензійної угоди з розробниками формату.
