|
Depth
#02
28 февраля 1998 |
|
Формат BMP - описание графического формата Windows.

Mysic by: ALOS(JNR)/SPARK Описание формата ВMР для Window 3.0 (DIB) ________________________________________ Основным отличием файлов нового формата (DIB) - Device Independent Bitmap (аппа- ратно-независимый битовый образ) являет- ся то, что в них используется кодировка цветов с одной битовой плоскостью. файлы битовых образов нового формата начинаются со структуры BITMAPFILEHEADER: typedef struct tag BITMAPFILEHEADER word bfType: тип файла (для битового образа - BM) dword bfSize; //размер файла в dword word bfReserved1: не используется word bfReserved2: не используется dword bfOffbits: смещение данных битового образа от заго- ловка в байтахtypedef struct tag BITMAPINFO; BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors [1]; typedef struct tag BITMAPINFOHEADER dword biSize: число байт , занимаемых структурой BITMAPIUFOHEADER dword biWidth: ширина битового образа в пикселах dword biHeight: высота битового образа в пикселах word biPlames: число битовых плоскостей устройства word biBitCovmt: число битов на пиксель dword biCompressiom: тип сжатия dword biSizeImage: размер картинки в байтах dword biXPelsPerMeter: горизонтальное разрешение устройства, пиксел/м dword biYPelPerMeter: вертикальное разрешение устройства, пиксел/м dword biClrUsed: число используемых цветов dword biClrImportamt: число "важных" цветов BITMAPINFOHEADER Более подробно biSize - обычно используется для об- легчения доступа к таблице цветов. biPlanes - определяет число битовых плоскостей; однако, поскольку цвет коди- руется последовательными битами, это число всегда равно 1. biBitCount - этим полем определяется число цветов, используемых битовым обра- зом. В зависимости от способа кодирова- ния, может принимать значения: 1 - битовый образ монохромный, и таблица цветов должна содержать два эле- мента. Каждый бит в массиве данных коди- рует один пиксел. Если значение бита - 0 , то пиксел становится первым цветом таблицы; если - 1, пиксел становится вторым цветом таблицы. 4 - битовый образ имеет максимум 16 цветов, и массив bmiColors (таблица цве- тов) имеет до 16 элементов. Цвет каждого пиксела определяется по таблице цветов при помощи четырехбитного индекса. Нап- ример, если первый байт данных имеет значение ЗAh, то при отображении битово- го образа цвет первого пиксела определя- ет четвертый элемент таблицы цветов, а цвет второго - одиннадцатый. 8 - битовый образ имеет максимум 256 цветов, и таблица цветов имеет до 256 элементов. Каждый байт массива данных определяет цвет одного пиксела. 24 - битовый образ имеет максимум 2 в 24-й степени цветов. Таблица цветов пуста, а цвет пикселов определяется па- кетами из трех байтов, описывающими цве- товые интенсивности красного, зеленого и голубого цветов. biCompression - тип сжатия. Может принимать значения: BI_RGB - сжатие отсутствует; BI_RLE8 - сжатие для формата 8 бит на пиксел; BI_RLEЧ - сжатие для формата 4 бита на пиксел. biXPelsPerMeter и biYPelsPerMeter - могут использоваться для выбора из спис- ка ресурсов пиктограммы, наиболее подхо- дящей для данного устройства. biClrUsed - число цветов, используе- мых данныи битовым образом. Если 0, то используются все цвета палитры (указан- ные в массиве bmiColors). biClrImportant - используется для управления алгоритмом отображения цве- тов. Так, если четыре различных приложе- ния отображают на экране по одному бито- вому образу с 75 цветами каждый, то адаптер, выводящий 256 цветов одновре- менно, не сможет полностью аутентично отобразить на экране все 4 картинки. В этом случае используется механизм замены цветов - ищется битовый образ с наи- меньшим приоритетом и его "лишние" цвета заменяются наиболее подходящими. typedef struct tagRGBQUAD byte rgbRed: интенсивность красного byte rgbGreen: интенсивность зеленого byte rgbBlue: интенсивность голубого byte rgbRserved: не используется RGBQUAD После того, как все параметры бито- вого образа определены, в файле идут са- ми скан-строки битовой плоскости, причем первой скан-строкой в формате DIB счита- ется нижняя скан-строка (т.е. начало ко- typedef struct tagRGBQUAD byte rgbRed: интенсивность красного byte rgbGreen: интенсивность зеленого byte rgbBlue: интенсивность голубого byte rgbRserved: не используется RGBQUAD После того, как все параметры бито- вого образа определены, в файле идут са- ми скан-строки битовой плоскости, причем первой скан-строкой в формате DIB счита- ется нижняя скан-строка (т.е. начало ко- ординат находится в левом нижнем углу изображения). Скан-строки выровнены по 32-битной границе - dword !!! ________________________________________Непосредственно
за ней распола-
гается структура
BITMAPINFO , со-
держащая всю ин-
формацию о бито-
вом образе. Она
делится на две
части: структуру
BITMAPINFOHEADER
, описывающей
размеры и цвето-
вой формат бито-
вого образа, и
массив структур
RGBQUAD ,опреде-
ляющей цветовую
палитру:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Другие статьи номера:
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3




































