Исходно формат TIFF создавался для работы с большими изображениями, и такой подход не только был сохранен, но даже получил дальнейшее развитие в TIFF 6.0. Никакой отдельный тег не указывает на графические данные, так как эти данные хранятся в виде полос (strips) или мозаики (tiles).
С момента появления формат TIFF использовал полосы. Идея заключалась в том, чтобы не хранить изображение целиком, а разбить его на горизонтальные полосы, получив, таким образом, много удобных для работы фрагментов.
Изображение, хранящееся в виде полос, для указания своего месторасположения внутри файла использует три записи каталога. Запись каталога RowsPerStrip указывает, сколько строк пикселов содержит каждая полоса. Запись каталога StripOffsets содержит список смещений в файле для каждой из полос. В свою очередь, запись каталога StripByteCounts содержит список размеров каждой полосы1.
Причина, по которой стоит использовать полосы, заключается в том, что, таким образом, упрощается работа с очень большими изображениями. Например, файл TIFF может хранить полномасштабное цветное изображение, рассчитанное на лист бумаги размером 8,5x11 дюймов с разрешением 300 точек на дюйм. В незапакованном виде такое изображение требует для хранения более 24 мегабайт. Для манипуляции с таким изображением надо иметь либо очень большой объем памяти, либо возможность быстро находить и обрабатывать части изображения на диске. Данные, представляющие одну строку пикселов такого изображения, будут занимать не меньше 8000 байтов. Если хранить каждую строку в виде отдельной полосы, то приложение, которое захочет отредактиро 1 Запомните, что каждая запись каталога «содержит» либо действительные данные, либо смещение в файле, по которому можно найти эти данные. Если данные изображения хранятся в виде единой полосы, то в каталоге будет единственное смещение для всех данных изображения. В противном случае запись каталога будет хранить смещение, указывающее на ту часть файла, в которой находятся смещения для всех полос.
вать часть изображения, сможет прочесть и изменить только необходимые данные, не требуя для этого чрезмерных объемов памяти. |