Depth #02
28 февраля 1998

Формат BMP - описание графического формата Windows.

<b>Формат BMP</b> - описание графического формата 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:  смещение  данных битового образа  от заго-
                  ловка в байтах                            
                                                            
                                                            
Непосредственно за ней распола- гается структура BITMAPINFO , со- держащая всю ин- формацию о бито- вом образе. Она делится на две части: структуру BITMAPINFOHEADER , описывающей размеры и цвето- вой формат бито- вого образа, и массив структур RGBQUAD ,опреде- ляющей цветовую палитру:
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 !!! ________________________________________



Другие статьи номера:

От авторов - interface: управление журналом.

От авторов - авторы журнала.

От авторов - от авторов: Продолжается анкетирование SPECCY населения.

Разное - "бывали такие времена, когда я был готов не задумываясь променять на Dendy".

Разное - проект новой игры Nether Earth 2.

Разное - новости членов AMAZING SOFTWARE MAKING.

Разное - новости от всех известных Спектрумовских групп.

Разное - новости об Амиге.

Юмор - рейнджер.

Юмор - plug & play.

Юмор - Краткий репортаж С празнования нового года Smash'овцами.

512 точек - Дополнительный графический режим 512X192.

Формат BMP - описание графического формата Windows.

Реклама - Cамый большой выбор в Крыму программного обеспечения.

Эсперанто 2 - продолжение уроков по эсперанто: Грамматика.

О приложении - приложение к журналу.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
События - серпуховский фестиваль ParaDiGMus party 2003. Afterparty.
Реклама - Реклама и объявления ...
B.B.S. Новости - О работе B.B.S.'ок.
От редакции - второй номер журнала "ТНЕ SТАR".
Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Часть 3.

В этот день...   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