BITMAPV4HEADER結構 (wingdi.h)
BITMAPV4HEADER結構是點陣圖資訊標頭檔。 它是 BITMAPINFOHEADER 結構的擴充版本。
應用程式可以使用 BITMAPV5HEADER 結構來新增功能。
語法
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
成員
bV4Size
結構所需的位元組數目。 應用程式應該使用此成員來判斷正在使用哪一個點陣圖資訊標頭結構。
bV4Width
點陣圖的寬度,以圖元為單位。
如果 bV4Compression 是BI_JPEG或BI_PNG, bV4Width 會以圖元指定 JPEG 或 PNG 影像的寬度。
bV4Height
點陣圖的高度,以圖元為單位。 如果 bV4Height 為正數,則點陣圖為由下至下 DIB,其原點為左下角。 如果 bV4Height 為負數,則點陣圖為由上而下 DIB,其原點為左上角。
如果 bV4Height 為負數,表示由上而下 DIB, bV4Compression 必須是 BI_RGB 或 BI_BITFIELDS。 無法壓縮由上而下之 DIB。
如果 bV4Compression 是BI_JPEG或BI_PNG, bV4Height 會以圖元指定 JPEG 或 PNG 影像的高度。
bV4Planes
目標裝置的平面數目。 此值必須設定為 1。
bV4BitCount
每個圖元的位數目。 BITMAPV4HEADER結構的bV4BitCount成員會決定定義每個圖元的位數,以及點陣圖中色彩的最大數目。 這個成員必須是下列其中一個值。
值 | 意義 |
---|---|
0 | 指定每個圖元的位數目,或由 JPEG 或 PNG 檔案格式隱含。 |
1 | 點陣圖是單色,而 BITMAPINFO的bmiColors成員包含兩個專案。 點陣圖陣列中的每個位都代表圖元。 如果位清楚,則圖元會以 bmiColors 資料表中第一個專案的色彩顯示;如果已設定位,則圖元具有資料表中第二個專案的色彩。 |
4 | 點陣圖最多有 16 種色彩,而 BITMAPINFO的bmiColors成員最多包含 16 個專案。 點陣圖中的每個圖元都會以 4 位索引來表示色彩資料表。 例如,如果點陣圖中的第一個位元組是0x1F,則位元組代表兩個圖元。 第一個圖元包含第二個表格專案中的色彩,而第二個圖元則包含第十六個數據表專案中的色彩。 |
8 | 點陣圖最多有 256 種色彩,而 BITMAPINFO的bmiColors成員最多包含 256 個專案。 在此情況下,陣列中的每個位元組都代表單一圖元。 |
16 | 點陣圖最多有 2^16 個色彩。 如果BITMAPV4HEADER結構的bV4Compression成員是BI_RGB,則 BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 WORD 都代表單一圖元。 紅色、綠色和藍色的相對濃度會以每個色彩元件的五個位表示。 藍色的值在最小有效五位中,後面接著 5 個位分別代表綠色和紅色。 未使用最顯著位。 bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV4HEADER之 bV4ClrUsed成員所指定的專案數目。如果BITMAPV4HEADER的bV4Compression成員BI_BITFIELDS,bmiColors成員會包含三個DWORD色彩遮罩,指定每個圖元的紅色、綠色和藍色元件。 點陣圖陣列中的每個 WORD 都代表單一圖元。 |
24 | 點陣圖最多有 2^24 個色彩,而BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 3 位元組三元代表圖元的藍色、綠色和紅色的相對濃度。 bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV4HEADER之 bV4ClrUsed成員所指定的專案數目。 |
32 | 點陣圖最多有 2^32 個色彩。 如果BITMAPV4HEADER的bV4Compression成員BI_RGB,BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 DWORD 代表圖元的藍色、綠色和紅色的相對濃度。 藍色的值在最小有效 8 位中,後面接著 8 位代表綠色和紅色。 不會在每個 DWORD 中使用高位元組。 bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV4HEADER之 bV4ClrUsed成員所指定的專案數目。如果BITMAPV4HEADER的bV4Compression成員BI_BITFIELDS,bmiColors成員會包含三個DWORD色彩遮罩,指定每個圖元的紅色、綠色和藍色元件。 點陣圖陣列中的每個 DWORD 都代表單一圖元。 |
bV4V4Compression
壓縮的下層點陣圖 (下拉式 DIB 的壓縮類型無法壓縮) 。 這個成員可以是下列其中一個值。
值 | 描述 |
---|---|
BI_RGB | 未壓縮的格式。 |
BI_RLE8 | 具有 8 bpp 之點陣圖的執行長度編碼 (RLE) 格式。 壓縮格式是包含計數位節的 2 位元組格式,後面接著包含色彩索引的位元組。 如需詳細資訊,請參閱 點陣圖壓縮。 |
BI_RLE4 | 具有 4 bpp 之點陣圖的 RLE 格式。 壓縮格式是包含計數位節的 2 位元組格式,後面接著兩個字長度的色彩索引。 如需詳細資訊,請參閱 點陣圖壓縮。 |
BI_BITFIELDS | 指定點陣圖未壓縮。 bV4RedMask、bV4GreenMask和bV4BlueMask成員會為每個圖元指定紅色、綠色和藍色元件。 搭配 16 和 32-bpp 點陣圖使用時,這是有效的。 |
BI_JPEG | 指定使用 JPEG 檔案交換格式壓縮影像。 JPEG 壓縮會因遺失而取捨壓縮;其可達到 20:1 的壓縮比率,但遺失較少。 |
BI_PNG | 指定使用 PNG 檔案交換格式壓縮影像。 |
bV4SizeImage
影像的大小,以位元組為單位。 這可能會針對BI_RGB點陣圖設定為零。
如果 bV4Compression 是BI_JPEG或BI_PNG, bV4SizeImage 是 JPEG 或 PNG 映射緩衝區的大小。
bV4XPelsPerMeter
點陣圖目標裝置的水準解析度,以圖元為單位。 應用程式可以使用此值,從最符合目前裝置特性的資源群組中選取點陣圖。
bV4YPelsPerMeter
點陣圖目標裝置的垂直解析度,以圖元為單位。
bV4ClrUsed
點陣圖實際使用的色彩資料表中色彩索引數目。 如果此值為零,點陣圖會針對bV4Compression所指定的壓縮模式,使用對應至bV4BitCount成員值的最大色彩數目。
如果 bV4ClrUsed 非零,且 bV4BitCount 成員小於 16, bV4ClrUsed 成員會指定圖形引擎或設備磁碟機存取的實際色彩數目。 如果 bV4BitCount 為 16 或更新版本, bV4ClrUsed 成員會指定用來優化系統調色盤效能的色彩表格大小。 如果 bV4BitCount 等於 16 或 32,最佳調色盤會緊接在 BITMAPV4HEADER之後開始。
bV4ClrImportant
顯示點陣圖所需的色彩索引數目。 如果此值為零,則所有色彩都很重要。
bV4RedMask
指定每個圖元紅色元件的色彩遮罩,只有在 bV4Compression 設定為 BI_BITFIELDS時才有效。
bV4GreenMask
指定每個圖元綠色元件的色彩遮罩,只有在 bV4Compression 設定為 BI_BITFIELDS時才有效。
bV4BlueMask
指定每個圖元藍色元件的色彩遮罩,只有在 bV4Compression 設定為 BI_BITFIELDS 時才有效。
bV4AlphaMask
指定每個圖元 Alpha 元件的色彩遮罩。
bV4CSType
DIB 的色彩空間。 下表列出 bV4CSType的值。
值 | 意義 |
---|---|
LCS_CALIBRATED_RGB | 這個值表示在適當的欄位中會提供端點和 gamma 值。 |
如需定義邏輯色彩空間的資訊,請參閱 LOGCOLORSPACE 結構。
bV4Endpoints
CIEXYZTRIPLE結構,指定三種色彩的 x、y 和 z 座標,這些色彩對應至與點陣圖相關聯之邏輯色彩空間的紅色、綠色和藍色端點。 除非 bV4CSType 成員指定LCS_CALIBRATED_RGB,否則會忽略這個成員。
bV4GammaRed
紅色的音調回應曲線。 除非色彩值已校正 RGB 值,否則會忽略這個成員, 而且 bV4CSType 會設定為 LCS_CALIBRATED_RGB。 以未帶正負號的固定 16.16 格式指定 。 上方 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
bV4GammaGreen
綠色的音調回應曲線。 如果 bV4CSType 設定為 LCS_CALIBRATED_RGB,則會使用 。 以未帶正負號的固定 16.16 格式指定 。 上方 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
bV4GammaBlue
藍色的音調回應曲線。 如果 bV4CSType 設定為 LCS_CALIBRATED_RGB,則會使用 。 以未帶正負號的固定 16.16 格式指定 。 上方 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
備註
BITMAPV4HEADER結構會擴充,以允許 JPEG 或 PNG 影像當做來源影像傳遞至StretchDIBits。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | wingdi.h (包含 Windows.h) |