Формат GIF.

Команды.

00FF

SHORT

Для любых 1, 2, 3.

2 – вывод через

3 – многостраничное изображение.

 

100 – управляет шириной рисунка.

SHORT

<0¸65535> – ширина в точках.

 

101 – управляет высотой рисунка.

SHORT

<0¸65535> – высота в точках.

Можно задать количество бит на одну точку.

 

11A

Rational

Разрешение в точках на дюйм (dpi). Можно указать качество вывода.

128 – единица разрешения.

 

Можно задать ориентацию рисунка при выводе. Это команда 112. Тип SHORT. Диапазон <1¸8>. 1 – ориентация как у монитора (0,0 – левый верхний угол). Довольно богатые возможности для комментариев. Можно также задать типы сжатия.

Начиная с пятой версии выделяют 4 вида изображения данных:

B – 0/1 – двухуровневое изображение.

G – с оттенками серого.

P – с передаваемой палитрой цветов.

R – с RGB-палитрой.

В настоящее время для получения малых изображений применяют такой метод: разбивают изображение на полосы, а затем эту полосу можно уплотнять или не уплотнять независимо от других полос изображения.

Могут использоваться следующие типы сжатия:

1. Pack Bit. В начале блока данных находится заголовок.

00 ¸ 7F

81 ¸ FF

Если первая запись лежит в первом диапазоне, то данные неуплотнённые и далее n байт неуплотнено. Если во втором диапазоне, то далее 1 байт данных и этот байт обрабатывается очень интересно. Именно это число является коэффициентом повторения следующего байта.

 

2. Fax-уплотнение.

Полностью повторяет стандарт. Там записана особая таблица. Она содержит сочетания чёрных и белых пикселов и к такому сочетанию присваивается код. Он всегда короче, чем сама последовательность. Вместо длинной цепочки битов идёт короткий набор кодов. Есть условности. Нельзя переходить со строки на строку. Не подлежат уплотнению первые строки. Уплотнение всегда начинается с белого цвета. Надо пользоваться маркером строки. (Есть искусственный приём – вставка белой строки).

 

С этим форматом может быть много нестыковок. Применяется он как для хранения, так и для передачи файлов с изображением. Вообще формат TIFF является «чемпионом» по нестыковкам собственных версий.

 

Специализирован для передачи графических данных по электронной почте. Имеет блочную структуру, схожую с TIFF.

Состоит из заголовка и блоков описания. Заголовок может иметь переменную длину. Структура заголовка:

1) GIF идентификатор типа файла (3 байта).

2) Версия, причём разработчики сделали 2 цифры и букву, например, 6.2a (3 байта).

3) Блок описания логического экрана (7 байт).

4) Общая палитра цветов (может отсутствовать).

5) Блок расширения.

6) Блок описания самого изображения.

7) Временная палитра цветов.

8) Блок расширения.

9) Конец заголовка. (“3B”).

 

Блок описания логического экрана:

· Ширина в пикселах (2 байта)

· Высота в пикселах (2 байта)

· Флаг расширения (1 байт)

· Цвет фона (1 байт)

· 0 – обычно – название этого поля (1 байт).

Pixel Aspect Ratio.

Флаг расширения: первый и второй биты – количество бит на пиксел, 4-ый, 5-ый и 6-ой – количество бит на каждый цвет, 7-ой – если 1, то должно быть описание собственной палитры, если 0, то палитра является стандартной. Можно задать локальную палитру – это уникально. Основная палитра игнорируется, а локальная становится приоритетной.

Блоки расширения.

1. Сопутствующая информация о том, каким программным продуктом надо пользоваться, вид сканера и тому подобное. Это своего рода справка.

2. В нём могут содержаться некоторые опции для построения изображения. Структура записей похожа на тэги. Начинается с «!» – признак блока. «0 – 255» – код функции. Длина первого блока, длина второго блока, и так далее. В блоке описания иллюстрации находятся параметры для вводавывода информации и так далее.

Сами данные могут уплотняться с помощью LZW (вероятностное кодирование). Цвета мы воспринимаем как индексы в палитре, тогда мы получим цвета как цепочку индексов, и эти цепочки как раз кодируются в таблицу LZW файла. Внутри одного файла можно описать несколько изображений (так называемый Animate GIF).

Достоинство: данный формат является аппаратно-независимым. Все настройки идут вместе с файлом.