
- •Растровые файлы
- •Идентификатор файла
- •Неиспользуемое пространство
- •Пример 1: Заголовок формата Microsoft Windows Bitmap, версия 1.Х
- •Пример 2: Заголовок формата Sun Raster
- •Пример 3: Заголовок формата Kofax Raster
- •Оптимизация чтения заголовка
- •Организация данных в виде плоскостей
- •Фрагменты
- •Палитра
Растровые файлы
Растровые файлы, отличаясь друг от друга деталями, имеют общую структуру. Растровые файлы содержат заголовок, растровые данные и прочую информацию, в том числе и о цветовой палитре. По непонятной причине продолжаются разработки программ, использующих так называемые неструктурированные форматы. Такие файлы содержат только данные изображения, не оставляя нам никаких шансов разобраться в их структуре. О том, как организованы данные в этих файлах, имеют представление только их разработчик и программа визуализации, которая их использует. Поскольку обычно невозможно определить, чем, кроме физического размера, один неструктурированный файл отличается от другого, мы будем обсуждать только растровые файлы, которые содержат хотя бы заголовки.
Как организованы растровые файлы
Основными компонентами простого растрового файла являются:
Заголовок |
Растровые данные |
Если файл не содержит данных изображения, то должен быть представлен только заголовок. Дополнительную информацию, которая не помещается в заголовке, размещают в концовке файла:
Заголовок |
Растровые данные |
Концовка |
Если применяется палитра, то ее можно сохранить в заголовке файла, но удобнее разместить ее в середине файла, после заголовка:
Заголовок |
Палитра |
Растровые данные |
Концовка |
Кроме того, палитру можно хранить после данных изображения на месте концовки файла или непосредственно в ее составе:
Заголовок |
Растровые данные |
Палитра |
Таблицы строк развертки и таблицы цветной коррекции могут располагаться после заголовка как перед данными изображения, так и после них.
Заголовок |
Палитра |
Таблица строк развертки |
Таблица цветовой коррекции |
Растровые данные |
Таблица цветовой коррекции |
Концовка |
Если файловый формат позволяет хранить несколько изображений, то после заголовка в файле может размещаться каталог изображений (индекс изображений), который содержит информацию о смещении начальных позиций всех изображений в файле:
Заголовок |
Палитра |
Каталог изображений |
Растровые данные изображения 1 |
Растровые данные изображения 2 |
… |
Растровые данные изображения n |
Концовка |
Если формат позволяет каждому изображению иметь свою собственную палитру, то ее принято сохранять непосредственно перед данными того изображения, с которым она связана:
Заголовок |
Палитра |
Каталог изображений |
Палитра 1 |
Растровые данные изображения 1 |
Палитра 2 |
Растровые данные изображения 2 |
|
Палитра n |
Растровые данные изображения n |
Концовка |
Теперь рассмотрим компоненты растрового файла более подробно.
Заголовок
Заголовок — это раздел двоичных или символьных (в формате ASCII) данных. Обычно он располагается в начале файла и хранит общую информацию о растровых данных, которые в этом файле содержатся. Все структурированные растровые файлы имеют заголовки, структура и содержимое которых определяются конкретным форматом. Обычно заголовок растрового файла состоит из фиксированных полей. Ни одно из этих полей не является обязательным, но определенный набор полей типичен для большинства популярных на сегодняшний день форматов. Ниже приведена информация, обычно содержащаяся в заголовке:
Заголовок |
Палитра |
Каталог изображения |
Палитра 1 |
Идентификатор файла |
Версия файла |
Количество строк в изображении |
Количество пикселей в строке |
Количество битов в пикселе |
Количество цветовых плоскостей |
Тип сжатия |
Х-координата начала изображения |
Y-координата начала изображения |
Текстовое описание |
Неиспользуемое пространство |