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

Пример 2: Заголовок формата Sun Raster

II

II Структура заголовка формата Sun Raster Image File Format

// WORD — это длинное целое без знака (32 бита)

//

typedef struck _SunRasterHead

{

//

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

//

WORD Magic; /* OOh Магическое число (59a66a95h) */

WORD Width; /*04h Ширина изображения в пикселях */

WORD Height; /*Q8h Высота изображения в пикселях. */

WORD Depth;. /*Och Количество битов на пиксель */

WORD Length; /*10h Длина изображения в байтах .*/

WORD Type; /*14h Тип кодирования */

WORD MapType; /*18h Тип цветовой таблицы */

WORD MapLength; ICh Длина цветовой таблицы в байтах */

} SUNRASHEAD;

Заголовок формата Sun Raster, кроме информации, описанной в заголовке Windows Bitmap 1 .х, содержит сведения о типе кодирования, а также о типе и размере цветовой таблицы, или палитры, связанной с этими растровыми данными.

Ни в одном из этих двух заголовков нет поля текстового описания. Теперь рассмотрим заголовок файлового формата Kofax Raster.

Пример 3: Заголовок формата Kofax Raster

//

// Структура заголовка формата Kofax Raster Image File Format

// LONG — это длинное целое со знаком (32 бита)

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

//

typedef struct _KofaxHeader

{

//

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

//

LONG Magic; /* Ooh Магическое число (68464B2Eh) */

SHORT HeaderSize; /* 04h Размер заголовка */

SHORT HeaderVersion; /* 06h Номер версии заголовка */

LONG Image Id; /* Oah Идентификатор изображения */

SHORT Width; /* Och Ширина изображения в байтах */

SHORT Length; /* Oeh Длина изображения в строках развертки */

SHORT Format; /* 10h Кодирование */

CHAR Bitsex; /* llh He 0, если Bitsex инвертирован */

CHAR Color; /* 12h He 0, если цвет инвертирован */

SHORT Xres; /* 14h Количество точек на дюйм по горизонтали */

SHORT Yres; /* 16h Количество точек на дюйм по вертикали */

CHAR Planes; /* 18h Количество плоскостей */

CHAR BitsPerPixel; /* 19h Количество битов на пиксель */

SHORT PaperSize; /* lAh Исходный размер бумаги */

CHAR Reservedl[20]; /* Ich Резервное поле */

LONG Dcreated; /* 30h Дата создания */

LONG Dmodified; /* 34h Дата модификации */

LONG Daccessed; /* 38h Дата доступа */

CHAR Reserved2[4]; /* 3Ch Резервное поле */

LONG loffset /* 40h Смещение Index Text Info */

LONG Ilength /* 44h Длина Index Text Info */

LONG Coffset /* 48h Смещение комментария */

LONG Clength /* 4Ch Длина комментария в байтах */

LONG Uoffset /* 50h Смещение данных пользователя */

LONG Ulength /* 54h Длина данных пользователя в байтах */

LONG Doffset /* 58h Смещение данных изображения */

LONG Diength /* 5Ch Длина данных изображения в байтах */

CHAR Reserved3[32]; /* 60h Резервное поле */

} KFXHEAD;

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

Несколько полей в этом заголовке помечены как резервные. Заголовок формата Kofax Raster специально дополнен до 128 байтов, чтобы можно было использовать часто применяемый размер буфера для чтения и записи, хотя в представленной здесь модификации заголовок занимает всего 72 байта. Спецификация формата Kofax Raster гарантирует, что первые 128 байтов каждого файла изображения Kofax можно интерпретировать как заголовок в любой модификации формата. Программа может просто игнорировать зарезервированные поля. Общая информация о зарезервированных полях представлена в разделе "Неиспользуемое пространство".

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