Скачать книгу

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

      1. Как показано на рис. 3.4, т. е. вначале – все директории, а затем все данные изображений.

      2. Попарно: директорий и данные 1-го изображения, затем – то же самое для 2-го и так далее.

      3. Вначале все данные изображений, а уже затем – директории этих изображений.

      Рис. 3.4. Общая структура TIFF-файлов

      Используя устаревший термин "директорий" автор следует стандартному описанию формата TIFF, предложенному фирмой Aldus в середине 90-х годов.

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

      Каждый тэг или поле представляет собой стандартную 12-байтовую структуру, где в первых 4 байтах хранится идентификатор тэга (поля) и тип элементов данных. Следующие 4 байта содержат количество элементов данных в этом поле и лишь последние 4 байта отведены для хранения собственно данных этого поля или же смещения того места, где хранятся эти графические данные.

      Универсальность формата TIFF проявляется также в том, что данные изображения могут быть организованы как в виде полос, так и в виде фрагментов. Понятие полоса для растрового изображения соответствует одной строке или последовательно расположенным нескольким строкам растра. Протяженность полосы измеряется количеством строк растра, которые в нее входят. Таким образом, полоса представляет собой одномерную структуру данных. Каждая полоса задается в некотором тэге (или поле) с помощью смещения относительно начала файла. Это позволяет программам отображения легко находить в файле нужные данные и отображать их независимо от других данных изображения.

      Рис. 3.5. Структура размещения данных в TIFF-формате

      Фрагмент представляет собой двумерную структуру данных, в нем задается как горизонтальная

Скачать книгу