Формат TIFF.

Первоначально был предназначен для издательской системы Adobe PageMaker. Затем он прижился и в других компаниях. Он стал основным форматом приёмо-передающей техники (Apple, IBM, HP, Microsoft). Внутри этого формата изображение должно быть отнесено к одному из трёх типов: Bivel, Graylevel, Color.

Структура формата – это заголовок и набор блоков данных различной длины, обращаться к которым можно с помощью индекса. Каждый отдельный блок данных называется Image File Directory (IFD). Внутри первого IFD можно записать ограниченное число информации. Когда этого объёма не хватает, то можно добавить блок чистых данных. За счёт того, что ссылки индексные, то к ним можно обращаться в любом порядке. Данные не могут быть первыми, не могут быть последними. Структура данных любая, можно организовать любые ссылки.

 

Заголовок

IFD1

IFD2

IFD3

Данные(*)

IFDN

 

Структура заголовка.

TIFF – это единственный формат, который не зависит от платформы (будь то Intel или Motorola). Например в процессорах Intel и Motorola младший и старший байты находятся противоположно друг другу, то есть, если у Intel – FF E0, то у Motorola – E0 FF.

TIFF – это единственный формат, в котором есть флаг.

В заголовке 3 строки:

1. 2 байта, в которой может быть либо II, либо ММ.

2. 2 байта. Кодирует номер версии формата.

3. 4 байта. Индекс первого блока IFD.

Структура IFD: в пределах списка, все IFD связаны указателями. Группа из 12 байт называется тэг. Количество тэгов в IFD ограничено числом, которое можно записать в 2 байта.

Начинается IFD с записи 2 байта. И здесь содержится число тэгов внутри IFD, далее группами по 12 байт идут тэги и последняя запись – это указатель на следующий IFD или 0. По каким правилам пишут тэги? Тэг хранит данные об изображении. Состоит из четырёх записей:

1) 2 байта. Тип тэга.

2) 2 байта. Тип данных.

3) 4 байта. Длина поля данных.

4) 4 байта. Либо сами данные, если не хватает четырёх байт, либо указатель на это поле.

Данные пятью видов:

0,1 – байтовые записи, если 02 – коды ASCII

0,3 – тип short.

0,4 – тип long (32 бит, целые беззнаковые).

0,5 – rational – два числа типа long. Первое – числитель дроби, второе – знаменатель.

Тип данных будет связан с длиной поля данных. В поле длины указано 10*getsize(short, long, …) по возрастанию номеров.

Тип тэга:

1) Image Organization Tag.

2) Pointer.

3) Pixel Description.

4) Data Compression.

5) Storage Management.

В каждом из них от двух до восемнадцати типов, групп. Примеры, кодируется конкретная запись тремя шестнадцатеричными цифрами. Рассмотрим эти записи. Имеется возможность организовать многостраничные изображения; задать режим с разрешением гораздо меньшим, чем максимальное. Где это удобно? Передача по факсу.