BITMAPINFO结构
BITMAPINFO結構
BITMAPINFO結構具有如下形式:
typedef struct tagBITMAPINFO
{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO
?
BITMAPINFO結構定義了位圖(DIB)的度量和顏色信息。
?
成員:
| bmiHeader | 指定了一個BITMAPINFOHEADER結構,包含了有關設備相關位圖的度量和顏色格式的信息。 |
| bmiColors | 指定了一個RGBQUAD或DWORD數據類型的數組,定義了位圖中的顏色。 |
注釋:
位圖(DIB)由兩個部分組成:
| (1) | 一個BITMAPINFO結構,描述了位圖的度量和顏色信息; | ||||||||||||
| (2) | 一個字節數組,定義了位圖的像素。數組中的字節被組合在一起,但是每個掃描行必須用零填補,在一個LONG邊界結束。如果高度為正的,位圖的起始位置在左下角。如果高度為負,起始位置在左上角。 | ||||||||||||
| (3) | BITMAPINFOHEADER結構中的biBitCount成員決定了定義像素的位數以及位圖中的最大顏色數。這個成員可以是下列值之一:
|
BITMAPINFOHEADER結構中的biClrUsed成員指定了顏色表中實際使用的索引的數目。如果biClrUsed成員被設為0,位圖將使用biBitCount成員中指定的最大顏色數。
bmiColors表中的顏色應當按照其重要性的順序出現。另一種情況是,對于使用DIB函數,bmiColors成員可以是一個16位無符號整數的數組,指定了當前實現的邏輯調色板中的索引,而不是確切的RGB值。在這種情況下,使用位圖的應用程序必須調用Windows的DIB函數(CreateDIBitmap,CreateDIBPatternBrush和CreateDIBSection),iUsage參數應被設為DIB_PAL_COLORS。
如果位圖是一個壓縮位圖(這意味著,這種位圖的數組直接跟在一個指針所引用的BITMAPINFO頭的后面),在使用DIB_PAL_COLORS模式的時候,biClrUsed成員必須被設為偶數,以便使DIB位圖數組從DWORD邊界開始。
注意:
如果位圖被保存在文件中,或者要被傳送到另一個應用程序,bmiColors成員不能包含調色板索引。除非應用程序獨占地使用和控制位圖,位圖的顏色表中應當包含準確的RGB值。
總結
以上是生活随笔為你收集整理的BITMAPINFO结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下的程序调试——GDB
- 下一篇: 软件开发如同木匠做桌子