Графические устройства

         

Заголовок файла для Windows

Первые точечные рисунки хранились в аппаратно-зависимом формате DDB (Device Dependent Bitmap). Такое представление было крайне неудобным, и разработчики Windows 3.0 отказались от него. Для нас оно не представляет интереса, поскольку не предназначено для современных видеосистем.

Семейства Windows 3-Х, 9Х и 2000 используют аппаратно-независимый формат DIB (Device independent Bitmap), заимствованный из OS/2 с некоторыми изменениями. Структура заголовка показана в табл. А.1.

Таблица А. 1. Заголовок дар-файла для Windows



Смещение поля
Размер в байтах
Имя поля
Назначение поля
00 (ООН)
2
bfType
Метка "ВМ"
02 (02h)
4
bfSize
Размер файла в байтах
06 (06h)
2
Reserved
Резервное поле
08 (08h)
2
Reserved
Резервное поле
10(OAh)
4
BfOffBits
Смещение области данных
14(OEh)
4
BiSize
Размер области информации
18(12h)
4
BiWidth
Ширина рисунка в точках
22(16h)
4
BiHeight
Высота рисунка в точках
26(1Ah)
2
Biplanes
Количество плоскостей (всегда 1)
28(1Ch)
2
BiBitCnt
Количество бит на точку
30(1 Eh)
4
BiCompr
Тип сжатия данных
34 (22h)
4
BiSizelmage
Размер данных в байтах
38 (26h)
4
biXPels/M
Количество точек на метр по оси
42 (2Ah)
4
biYPels/M
Количество точек на метр по оси
46 (2Eh)
4
BiClrUsed
Количество используемых цветов
50 (32h)
4
BiClrlmprt
Количество цветов в палитре


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

Поле biplanes указывает количество плоскостей в рисунке. Трудно сказать, какой целью его ввели. По крайней мере, при выводе рисунка на экран или на печать поле biplanes не используется.

Большинство рисунков получается путем оцифровки рукотворных картинок, фотографий, слайдов, кино или видеокадров. При выводе таких рисунков на печать важно знать размер оригинала. Необходимые для этого данные находятся в полях biXPels/M И biYPels/M, ГД6 Pels означает Picture Elements (элемент рисунка или просто точка). Если содержащиеся в них величины умножить на 25,4 и разделить на 1000, то получится разрешающая способность устройства, с помощью которого была оцифрована картинка. Например, при сканировании с разрешением 300 точек на дюйм по обеим координатам на один метр приходится приблизительно 300-1000/25,4 =11811 точек. Этому числу соответствует код 2Е23h, который и будет храниться в описываемых полях. Учитывая возможные ошибки вычислений, реальная величина может незначительно отличаться от вычисленной.

  
Содержание раздела