Формат TIFF сохраняет множество данных изображения в помеченных полях, что и определило его название ("Формат файла помеченного изображения"). Каждое помеченное поле хранит информацию о растровом рисунке или ссылку на другие поля. Программа, читающая файл, может пропускать неизвестные или ненужные ей поля. Эта
366
многогранность позволяет формату находить применение в различных компьютерных системах. Кроме того, формат TIFF может сохранять разнообразные дополнительные данные о растровом рисунке, включая: кривую коррекции для изображения с оттенками серого; поля детальной информации об изображении (название программы, автора, дату создания и комментарии); размер изображения и разрешающую способность; детальную информацию о цвете оригинала.
Большинство программ, читающих файл TIFF, способны без проблем прочесть файлы этого формата, созданные на других системах. Структура формата TIFF изменчива, что позволяет ему хранить разнообразные типы изображений.
Файлы TIFF начинаются с небольшого заголовка, за которым следует указатель на первый набор помеченных полей. Помеченные поля собираются в каталоги файла изображения (КФИ), который просто содержит счетчик количества помеченных полей и указатель на первое из них. Длина помеченного поля равна 12 байтов, поэтому считывающая программа может быстро найти каждое из них.
Заголовок файла. Заголовок файла TIFF составляет 8 байтов. Первые 2 байта указывают, какой формат у файла, следующие 2 байта содержат номер версии, последние 4 байта заголовка указывают на первый КФИ. Обычно первый КФИ должен следовать сразу после заголовка, но в файле TIFF все локализуется с помощью указателей.
Католог файла изображения. Содержит 2-байтовый счетчик общего количества помеченных полей, за которыми следуют сами помеченные поля. Двухбайтовая длина ограничивает предел каждого КФИ 256-ю помеченными полями.
Помеченные поля. Длина помеченного поля равна 12 байтов. Первые 2 байта - код метки (тип помеченного поля), следующие 2 байта содержат тип данных, на которые указывает поле. Тип данных позволяет программе узнать, сколько байтов нужно читать для каждого отдельного элемента данных. Всего пять различных типов: 1-байтовый код символа ASCII; 1-байтовое целое число; 2-байтовое целое число; 4-байтовое целое число, 8-байтовое дробное число.
Следующие 4 байта показывают, на сколько различных элементов данных указывает помеченное поле. Если данные занимают в общем 4 байта или меньше, то элементы данных содержатся в последних 4 байтах помеченного поля. Если же данные занимают больше 4 байтов, то последние 4 байта помеченного поля используются в роли указателя на данные.
Сжатие. Файлы данного формата способны хранить пиксельные данные, сжатые с помощью разнообразных схем, например, кодированием по методу Хаффмана.