Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
62
Добавлен:
02.05.2014
Размер:
127.49 Кб
Скачать

Неиспользуемое пространство

В конце заголовка могут располагаться неиспользуемые поля, иногда называемые набивкой, заполнителе зарезервированным пространством или зарезервированными полями. Зарезервированные поля не содержат данных, описываются и не структурируются. Их размеры и местоположение в заголовке известны. Если возникнет необход мость расширить формат, то сведения о новых данных заносятся в зарезервированное пространство. Таким образ< сохраняется совместимость с программами, поддерживающими старые версии этого формата, а проблемы, связанн) с появлением новых версий, сводятся к минимуму. Заголовок формата имеет фиксированную длину и структу! В процессе модификации формата его структура усложняется, при этом новые поля добавляются в зарезервированн] области заголовка без изменения его размеров. Часто заголовок специально расширяется зарезервированными поля» до общей длины 128, 256 или 512 байтов. Это связано с необходимостью учитывать размеры буферов ввода/выво для повышения производительности системы. Наличие таких полей свидетельствует о том, что автор формата забыл о проблемах производительности и кэширования файлов.

Иногда зарезервированные поля являются просто артефактами, которые возникают в процессе развития форма или остаются от рабочих версий. Распространитель обычно изменяет или расширяет файловый формат только п давлением обстоятельств или в ответ на требования рынка, обусловленные непредвиденным развитием технологи Как в одном, так и в другом случае развитие формата крайне трудно планировать, что обуславливает стремлен производителя минимизировать усилия на "встраивание" новых данных. Зачастую первое, чем приходится жертв вать, — это совместимость с предыдущими версиями.

Примеры растровых заголовков

Пример 1: Заголовок формата Microsoft Windows Bitmap, версия 1.Х

II

II Структура заголовка формата MS Windows l.x Bitmap Format

// BYTE — это однобайтовое беззнаковое символьное значение

// WORD — это короткое беззнаковое целое (16 битов)

//

typedef struct _WinHeaderlx

{

//

// Тип Имя Смещение Комментарий

//

WORD Type; /* OOh Идентификатор типа файла (всегда 0) */

WORD Width; /* 02h Ширина растра в пикселях */

WORD Height; /* 04h Высота растра в пикселях */

WORD Width; /* 06h Ширина растра в байтах */

BYTE Planes; /* 08h Количество цветовых плоскостей */

BYTE BitsPixel; /* 09h Количество битов на пиксель */

} OLDWINHEAD;

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

Обратите внимание на то, что заголовок Windows Bitmap l.x не содержит информации о цветах и сжатии дани изображения. Расширенный формат изображений должен предусматривать возможности описания цветовой информации и хотя бы простой схемы сжатия. Следующий пример — более сложный заголовок формата файла изображения Sun Raster

Соседние файлы в папке Лекции по компьютерной графике