3.2.Формат PDF. 3.3.Формат розмітки тексту RTF
3. 2. Формат PDF Формат PDF (Portable Document Format) - переносний формат документів, розроблений компанією Adobe Systems, використовується як основа для створення електронних видань у середовищі програмного пакету Adobe Acrobat. Формат PDF - це файловий текстової формат, призначений для представлення публікацій чи інших документів на будь-якій апаратній платформі й у будь-якому операційному середовищі. PDF-файл містить PDF-публікацію і спеціальні дані. PDF-публікація (документ) містить одну чи більше сторінок. Кожна сторінка може включати будь-які компоненти електронного видання: текст, графіку й ілюстрації, анімацію, відео- і аудіо інформацію в апаратно-незалежному форматі, у вигляді так званого сторінкового опису (page description). PDF-публікація може також містити інформацію, що забезпечує навігацію в гіпертекстовій електронній публікації. Крім того, публікація містить версію специфікації PDF, що використовується в конкретному файлі, і інформацію про розташування структури файлу. Формат PDF представляє текст і графіку, використовуючи модель формування зображень мови програмування смуг PostScript. Графічними об'єктами можуть бути тексти і форми публікацій, векторні і растрові зображення і т. д. Графічні об'єкти можуть бути будь-якого кольору. Оператори створення сторінок PDF подібні операторам мови PostScript. Головна відмінність полягає в тому, що PDF не програмна мова, вона не містить процедур, змінних і т. п. Характерними рисами PDF-файлу є: - PDF-файл може містити об'єкти, подібні до гіпертекстових посилань, доступні тільки при інтерактивному перегляді; - для спрощення процесу опису сторінок PDF не використовує конструкції програмних мов; - PDF створює визначену структуру файлу, що дає змогу програмним додаткам мати доступ до будь-якої частини документа;
- PDF-файл містить інформацію про розміри шрифту і т. п.; - PDF-файл не може бути прямо перетворений у PostScript-публікацію для друку; - PDF-файл будується або на основі 7-бітовому ASCII-файлі, або на базі бінарного файлу. Якщо це ASCII-файл, у ньому використовуються тільки друковані символи 7-бітового ASCII-коду, пробіл, табуляція, повернення каретки і перехід рядка. У випадку бінарного файлу можуть бути використані всі символи 8-бітового коду. Вважається, що ASCII-код - найбільш зручний для переносу вид кодування. Для зменшення розміру файлу PDF використовує різні методи стиснення зображень: - JPEG - для повноколірних ілюстрацій і зображень у градаціях сірої шкали; - CCITT - для чорно-білих зображень; - LZW - для компресії і декомпресії текстового матеріалу. Усі ці методи оперують із двійковими даними, що потім можуть бути закодовані в коді ASCII. Для забезпечення незалежності від шрифтів PDF-файл містить опис для кожного шрифту, використаного в публікації. Опис включає назву, кегль (розмір) і стиль шрифту. У режимі перегляду публікації, якщо шрифт, використаний у документі, доступний, то він використовується. Якщо недоступний, то заміняється на подібний з тим же кеглем і іншими характеристиками. Деякі шрифти можуть вбудовуватися в PDF-публікацію. Для прямого пошуку будь-якої сторінки файлу PDF-файл містить спеціальну таблицю посилань. Таблиця розміщається наприкінці файлу і сприяє зменшенню часу пошуку і виводу сторінки в PDF-публікації, тому що забезпечує незалежність часу пошуку від загальної кількості сторінок у документі. 3. 3. Формат розмітки тексту RTF Формат RTF (Rich Text Format) був визначений фірмою Microsoft як стандартний формат для обміну текстовими документами. Даний формат не є стандартом, однак підтримується фірмою Microsoft і розроблювачами програмних додатків, орієнтованих на програмно-інформаційну сумісність з операційною системою Windows і її додатка. Так, наприклад, у Windows починаючи з версії 2. 0 цей формат уведений як Clipboard-формат, завдяки чому можливий обмін даними між різними прикладними програмами. Крім того, формат RTF підтримується текстовими редакторами Word для Macintosh починаючи з версії 3. 0 і Word для PC починаючи з версії 4. 0 для DOS і з версії 2. 0 для Windows. В даний момент практично будь-яка програма, що працює з текстом, підтримує цей формат.
До складу заголовка файлу входять ідентифікатор RTF-файлу, команда вибору гарнітури, команда вибору шрифту за замовчуванням і таблицею доступних шрифтів, таблиця кольорів (RGB) і таблиця стилів. У тілі файлу розміщаються дані публікації у виді двійкових кодів ASCII. У форматі RTF використовуються тільки символи, що представлені стандартом ASCII, а також MAC- і PC-символьного набору. Крім тексту, файл у RTF-форматі містить команди керування, що також реалізовані з використанням цього стандарту. Іноді формат RTF називають мовою розмітки тексту. Це, напевно, зв'язане з тим, що формат містить оператори, що керують слова і символи, інші елементи опису розміщення тексту і графіки. Команди керування розділяються на керуючі слова (control words) і керуючі символи (control symbols). Керуюче слово являє собою послідовність символів з роздільником (delimiter) наприкінці: \набір_символів < роздільник> Перед керуючим словом вводиться зворотна коса риса «\» (backslash). Як роздільники можуть використовуватися наступні символи: - пробіл (space), цей символ відноситься до керуючого слову; - цифра чи знак «-» (у цьому випадку параметр завершується роздільником - чи пробілом іншими символами, крім цифр і букв); - усі символи, відмінні від цифр і букв (ці символи не відносяться до керуючого слову). У форматі RTF для завдання керуючої послідовності символів використовуються букви від «А» до «Z» і від «а» до «z», а також цифри від 0 до 9. Національні символи до керуючого інформації не відносяться. Як керуючі символи використовуються окремі букви. Перед кожним керуючим символом вводиться зворотна коса риса «\»: \керуючий_символ В даний час визначені тільки деякі з цих символів. Тому при читанні невідомі символи можуть бути пропущені.
У форматі RTF існує можливість поєднувати окремі послідовності в групи за допомогою дужок: { - початок групи } - кінець групи Такі групи створюються, наприклад, при описі виносок, колонтитулів і т. п. Якщо символи «\», «{« чи «}» розміщаються усередині звичайного тексту, то перед ними ставиться зворотна коса риска: \\; \{; \}. Це дає змогу програмі, що читає RTF-послідовність, розпізнати, що символ не слід інтерпретувати як керуючий. У форматі RTF використовуються також символьні коди для керування друком. У форматі RTF є керуючі слова спеціального призначення. До них можна віднести: \chpgn - керуюче слово change page number виводить поточний номер сторінки; \chftn - дана послідовність (change footnote) активізує автоматичну нумерацію виносок; \chdate - за допомогою керуючого слова change date виводиться біжуча дата; \chtime - за допомогою change time виводиться біжучий час; \chatn - посилання на примітку (текст випливає в групі); \chftnsep - свідчить про зміну лінії, що відокремлює виноски від тексту; \: - послідовність позначає підпункт індексу; \~ - група символів задає твердий (такий, що не розривається) пробіл між двома словами, тобто в цій позиції пропозиція не може бути розділена при переносі на наступний рядок; \- - символи позначають м'який перенос (nonrequired hyphen); \_ - символи позначають перенос, що не розривається, (nonbreaking hyphen), на місці якого слово не може бути розділене; \page - дана послідовність задає перехід на нову сторінку; \line - ця послідовність викликає перехід на новий рядок у тексті; \раr - за допомогою даної послідовності в тексті позначається кінець абзацу. Послідовність \раr може замінятися послідовністю \10 чи \13. При цьому \10 відповідає ASCII-символу з кодом 10 (carriage return); \sect - ця послідовність позначає кінець текстового фрагменту чи текстового абзацу. За допомогою керуючих слів можна робити основне налаштування програми читання формату RTF. Ці керуючі слова можуть зустрічатися тільки на початку документу чи на початку групи. Всі оператори разом з параметрами повинні бути укладені в дужки, наприклад:
{\rtf0\pc... } До основних операторів формату можна віднести: \rtf < параметр> - даний оператор задає мітку початку файлу. Як параметр програма, за допомогою якої створюється файл, може вказувати номер версії, наприклад: {\rtf0... } Мітка повинна стояти на початку файлу. Після цього оператора можуть випливати інші оператори чи закриваюча дужка. Установка виду кодування для тексту, що зберігається, здійснюється за допомогою операторів, представлених у табл. 3. 1. Таблиця 3. 1
Для передачі текстів між різними системами використовується оператор \ansi. Оператор \colortbl у Windows-додатках і інших програмах застосовується для визначення палітри кольорів, що використовуються. Найчастіше палітра складається з 16 різних кольорів, що отримані шляхом комбінації базових кольорів - RGB (червоного, зеленого і синього). Команда \colortbl дає змогу змінити окремі визначення в палітрі. Для кожного кольору в таблиці вказується величина червоної, зеленої і синьої складової. Кожен колір описується трьома параметрами: \red000 - червоний; \green000 - зелений; \blue000 - синій. Замість 000 вказується величина інтенсивності кольору в діапазоні від 0 до 255. Наприклад, у таблиці, що складається з 16 кольорів, повинні бути визначені знов 0-й і 2-й кольори. Для перевизначення кольорів може бути задана послідовність: {\colortbl\red128\green64\blue128\;; \red0\green64\blue128; } Визначення кольору завершується крапкою з комою. Оскільки перший колір залишається без змін, у послідовності два символи «; » розташовані один за іншим. Послідовність завершується закриваючою дужкою. Оператор \cfn визначає колір фону (при стандартному настроюванні n=0). Оператор \cbn визначає колір символу (при стандартному настроюванні n=0). Оператор \fonttbl використовується для побудови таблиці шрифтів і співвідносить ім'я шрифту (групи шрифтів) з номером шрифту. При визначенні шрифту можна використовувати оператори, представлені в табл. 3. 2. Таблиця 3. 2
Команда для створення групи шрифтів може складатися з таких операторів:
{\fonttbl\f0\fnil default; } {\fl\froman roman h; } {\f2\fswiss helvetica; } Після ключового слова \fonttbl випливає перший номер шрифту \f0. Далі йде визначення групи шрифтів. Тут після номера 0 зазначене \fnil, тобто ім'я групи невідомо. Наступний параметр позначає ім'я обраного шрифту (наприклад, roman h). Вказівка default говорить програмі, що зчитує, про те, що варто використовувати стандартний шрифт. Після імені шрифту стоїть крапка з комою. У приведеному прикладі визначені тільки шрифти з номерами 1 і 2. Уся послідовність може бути об'єднана фігурними дужками в групу. Таблиця шрифтів повинна бути заповнена значеннями до того, як зустрінеться оператор \stylesheet чи текст. Стандартний шрифт вводиться оператором \deffn. Оператор \stylesheet визначає шрифт абзацу, тобто розмір, накреслення й ім'я гарнітури, а також спосіб вирівнювання тексту абзацу. При цьому використовуються два ключових оператори, опис яких представлене в табл. 3. 3. Таблиця 3. 3
Оператор може мати вигляд: {\stylesheet\s0\f3\fs20\qj Normal; } {\sl\f3\fs30\b\qc Heading Level 3; } Шрифти нумеруються числами від 0 до n (\s0... ). У першому рядку стилю абзацу 0 (\s0) пропонується ім'я Normal. Вивід тексту виконується шрифтом 3 (\f3), розміром 10 пунктів (\fs20). Параметр \qj говорить про те, що напис повинен вирівнюватися по форматі. Другий рядок визначає стиль шрифту 1, що отримує ім'я Heading Level 3. Шрифт має розмір 15 пунктів, жирне накреслення (\b = bold) і при виведенні напис центрується (\qc). Оператор \pict використовується при описі малюнку у форматі бітової карти (bitmap). Оператори містять опис малюнку у виді шістнадцядкових значень. Ці оператори можуть бути вибірково використані для визначення геометрії малюнка чи його формату. Для завдання параметрів колонтитулів до складу формату введені наступні оператори: - Оператор \header визначає верхній колонтитул біжучого фрагменту тексту і вводиться на початку тексту. - Оператор \headerl визначає верхній колонтитул парної сторінки (left hand header), на якій колонтитул виводиться з вирівнюванням вліво. - Оператор \headerr установлює верхній колонтитул непарної сторінки, на якій колонтитул виводиться з вирівнюванням вправо (right hand header). - Оператор \headerf установлює верхній колонтитул першої сторінки (first page header). - Оператор \footer установлює нижній колонтитул біжучого фрагмента і повинний указуватися перед початком тексту. - Оператор \footerl установлює нижній колонтитул парної сторінки (left hand footer), на якій колонтитул виводиться з вирівнюванням уліво. - Оператор \footerr установлює нижній колонтитул непарної сторінки, на якій він виводиться з лівостороннім вирівнюванням (right hand footer). - Оператор \footerf установлює нижній колонтитул першої сторінки (first page footer). Група операторів \xe описує стиль нумерації сторінок (табл. 3. 4). Таблиця 3. 4
У складі формату передбачені оператори форматування документа (document formatting). Їхня дія поширюється на весь текстовий матеріал. Команда \paperw000 задає ширину листа в twips (один twip дорівнює 1/20 пункту чи 1/1440 дюйма). Значення ширини вказується замість 000. Якщо команда відсутня, то ширина листа встановлюється рівною 12240 twips. Команда \рареrh000 задає висоту листа в twips. Значення висоти вказується замість 000. Якщо команда відсутня, то висота листа встановлюється рівною 15840 twips. За допомогою команди \margl000 можна встановлювати ширину лівого поля при друці. Стандартна ширина поля дорівнює 1800 twips. За допомогою команди \margr000 можна встановити ширину правого поля при друці. Стандартна ширина поля дорівнює 1800 twips. Оператор \margt000 служить для встановлення ширини верхнього поля (margin top) при друці. Стандартна ширина поля дорівнює 1440 twips. За допомогою команди \ margb000 установлюється ширина нижнього поля (margin bottom) при друці. Стандартна ширина поля дорівнює 1440 twips. Оператор \facingp (facing page) визначає зовнішній вигляд сторінки. Він установлює, наприклад, друкується колонтитул на парних чи на непарних сторінках. Якщо за оператором випливає параметр 0, то вивід придушується. За допомогою оператора \gutter000 можна встановити ширину поля підшивки (gutter) усередині facing page. Команда \deftab000 визначає величину табулятора. Стандартне значення складає 72 twips. Передбачено роботу з виносками. Якщо в документі зазначений оператор \endnotes, то тексти виносок розміщаються наприкінці фрагменту. За замовчуванням тексти виносок виводяться наприкінці сторінки (footnotes bottom justified). Оператор \ftobj дає змогу переключитися з установки, заданої оператором \endnotes, на стандартну установку. При використанні оператора \ftntj виноски виводяться в тексті (footnotes top justified). При вказівці оператора \ftnrestart нумерація виносок на кожній сторінці починається з 1. Параметр 0 відключає цю установку. Оператор \ftnsep визначає роздільник, що відокремлює виноски від тексту. Оператор \ftnsepc визначає роздільник, що відокремлює виноски, що переходять на наступну сторінку, від тексту. Команда \ftncn задає оцінку для наступної виноски. Команда \enddoc визначає виноску наприкінці документа. Команда \landscape використовується для завдання альбомної орієнтації (landscape) видання. При вказівці параметра 0 відновлюється книжкова орієнтація. У складі формату RTF є оператори для завдання накреслення і способу виділення символів при створенні редакторських приміток, форматування секції (section formatting); команди завдання відстані між рядками; оператори нумерації рядків; оператори завдання атрибутів колонтитулів; команди вирівнювання; оператори форматування абзацу (paragraph formatting); установки параметрів відступу першого рядка абзацу (first line indent); оператори завдання атрибутів рамки навколо абзацу; оператори форматування таблиць і ін. Набір операторів розглянутого формату орієнтований на опис складного текстового матеріалу, що включає ілюстрації, таблиці, діаграми й інші елементи друкованих видань. Формат RTF застосовується для представлення електронних видань, створених у середовищі MS Office, і додатків операційної системи Windows. Звичайно він виконує функції обмінного формату. Розділ 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) і необхідність складення ліцензійної угоди з розробниками формату. 4. 2. Формат графічних файлів PNG Формат PNG призначений для збереження і передачі растрових зображень. Він дає змогу зберігати зображення, бітова глибина яких досягає 16 (у шкалі сірого кольору) або 48 (у truecolor-зображеннях) біт/піксель, а також 16 біт альфа-даних. Цей формат забезпечує поетапне відображення даних, збереження інформації про прозорість, а також здійснює кодування текстової інформації. У ньому використовується метод стиснення даних без втрат. PNG - новий формат, орієнтований на фахівців в області комп'ютерної графіки. Він розроблений як альтернатива формату GIF (Graphics Interchange Format), використання якого розробниками електронних публікацій і графічних зображень передбачає попередню оплату майбутньої реал
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|