BITMAPV5HEADER 結構 (wingdi.h)
BITMAPV5HEADER結構是點陣圖資訊標頭檔。 它是 BITMAPINFOHEADER 結構的擴充版本。
語法
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent;
DWORD bV5ProfileData;
DWORD bV5ProfileSize;
DWORD bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
成員
bV5Size
結構所需的位元組數目。 應用程式應該使用此成員來判斷正在使用哪一個點陣圖資訊標頭結構。
bV5Width
點陣圖的寬度,以圖元為單位。
如果 bV5Compression BI_JPEG或BI_PNG, bV5Width 成員會以圖元指定解壓縮 JPEG 或 PNG 影像的寬度。
bV5Height
點陣圖的高度,以圖元為單位。 如果 bV5Height 的值為正數,則點陣圖為由下至下 DIB,其原點為左下角。 如果 bV5Height 值為負數,則點陣圖為由上而下 DIB,其原點為左上角。
如果 bV5Height 為負數,表示由上而下 DIB, bV5Compression 必須是BI_RGB或BI_BITFIELDS。 無法壓縮由上而下之 DIB。
如果 bV5Compression 是BI_JPEG或BI_PNG, bV5Height 成員會以圖元指定解壓縮 JPEG 或 PNG 影像的高度。
bV5Planes
目標裝置的平面數目。 此值必須設定為 1。
bV5BitCount
定義每個圖元和點陣圖中色彩數目上限的位數。
這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
0 | 指定每個圖元的位數,或由 JPEG 或 PNG 檔案格式隱含。 |
1 | 點陣圖是單色,而 BITMAPINFO的bmiColors成員包含兩個專案。 點陣圖陣列中的每個位都代表圖元。 如果位清楚,則圖元會以 bmiColors 色彩表中第一個專案的色彩顯示。 如果已設定位,圖元就會有資料表中第二個專案的色彩。 |
4 | 點陣圖最多有 16 種色彩,而 BITMAPINFO的bmiColors成員最多包含 16 個專案。 點陣圖中的每個圖元都會以 4 位索引來表示色彩資料表。 例如,如果點陣圖中的第一個位元組是0x1F,則位元組代表兩個圖元。 第一個圖元包含第二個表格專案中的色彩,而第二個圖元則包含第十六個數據表專案中的色彩。 |
8 | 點陣圖最多有 256 種色彩,而 BITMAPINFO的bmiColors成員最多包含 256 個專案。 在此情況下,陣列中的每個位元組都代表單一圖元。 |
16 | 點陣圖最多有 2^16 個色彩。 如果BITMAPV5HEADER結構的bV5Compression成員是BI_RGB,則 BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 WORD 都代表單一圖元。 紅色、綠色和藍色的相對濃度會以每個色彩元件的五個位表示。 藍色的值在最小有效五位中,後面接著 5 個位代表綠色和紅色。 未使用最顯著位。
bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV5HEADER之 bV5ClrUsed成員所指定的專案數目。如果BITMAPV5HEADER的bV5Compression成員是BI_BITFIELDS,bmiColors成員會包含三個DWORD色彩遮罩,分別指定每個圖元的紅色、綠色和藍色元件。 點陣圖陣列中的每個 WORD 都代表單一圖元。
當 bV5Compression 成員BI_BITFIELDS時,每個 DWORD 遮罩中設定的位必須連續,且不應該與另一個遮罩的位重迭。 不需要使用圖元中的所有位。 |
24 | 點陣圖最多有 2^24 個色彩,而BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 3 位元組三元分別代表圖元的藍色、綠色和紅色的相對濃度。 bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV5HEADER結構之 bV5ClrUsed成員所指定的專案數目。 |
32 | 點陣圖最多有 2^32 個色彩。 如果BITMAPV5HEADER的bV5Compression成員是BI_RGB,BITMAPINFO的bmiColors成員為Null。 點陣圖陣列中的每個 DWORD 代表圖元的藍色、綠色和紅色的相對濃度。 藍色的值在最小有效 8 位中,後面接著 8 位代表綠色和紅色。 不會在每個 DWORD 中使用高位元組。 bmiColors色彩表用於優化調色盤型裝置上所使用的色彩,而且必須包含BITMAPV5HEADER之 bV5ClrUsed成員所指定的專案數目。如果BITMAPV5HEADER的bV5Compression成員BI_BITFIELDS,bmiColors成員會包含三個DWORD色彩遮罩,指定每個圖元的紅色、綠色和藍色元件。 點陣圖陣列中的每個 DWORD 都代表單一圖元。 |
bV5Compression
指定點陣圖未壓縮。 bV5RedMask、bV5GreenMask和bV5BlueMask成員會指定每個圖元的紅色、綠色和藍色元件。 搭配 16 和 32-bpp 點陣圖使用時,這是有效的。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
BI_RGB | 未壓縮的格式。 |
BI_RLE8 | 具有 8 bpp 之點陣圖的執行長度編碼 (RLE) 格式。 壓縮格式是包含計數位節的雙位元組格式,後面接著包含色彩索引的位元組。 如果 bV5Compression 是BI_RGB,而 bV5BitCount 成員是 16、24 或 32,則點陣圖陣列會指定藍色、綠色和紅色的實際強度,而不是使用色彩資料表索引。 如需詳細資訊,請參閱 點陣圖壓縮。 |
BI_RLE4 | 具有 4 bpp 之點陣圖的 RLE 格式。 壓縮格式是包含計數位節的雙位元組格式,後面接著兩個字長度的色彩索引。 如需詳細資訊,請參閱 點陣圖壓縮。 |
BI_BITFIELDS | 指定點陣圖不會壓縮,而且每個圖元的紅色、綠色和藍色元件的色彩遮罩是在bV5RedMask、bV5GreenMask和bV5BlueMask成員中指定。 搭配 16 和 32-bpp 點陣圖使用時,這是有效的。 |
BI_JPEG | 指定使用 JPEG 檔案交換格式壓縮影像。 JPEG 壓縮會因遺失而取捨壓縮;其可達到 20:1 的壓縮比率,但遺失較少。 |
BI_PNG | 指定使用 PNG 檔案交換格式壓縮影像。 |
bV5SizeImage
影像的大小,以位元組為單位。 這可能會針對BI_RGB點陣圖設定為零。
如果 bV5Compression 是BI_JPEG或BI_PNG, bV5SizeImage 就是 JPEG 或 PNG 映射緩衝區的大小。
bV5XPelsPerMeter
點陣圖目標裝置的水準解析度,以圖元為單位。 應用程式可以使用此值,從最符合目前裝置特性的資源群組中選取點陣圖。
bV5YPelsPerMeter
點陣圖目標裝置的垂直解析度,以圖元為單位。
bV5ClrUsed
點陣圖實際使用的色彩資料表中色彩索引數目。 如果此值為零,點陣圖會針對bV5Compression所指定的壓縮模式,使用對應至bV5BitCount成員值的最大色彩數目。
如果 bV5ClrUsed 非零, 且 bV5BitCount 小於 16, bV5ClrUsed 成員會指定圖形引擎或裝置驅動程式存取的實際色彩數目。 如果 bV5BitCount 為 16 或更新版本, bV5ClrUsed 成員會指定用來優化系統調色盤效能的色彩表格大小。 如果 bV5BitCount 等於 16 或 32,最佳調色盤會緊接在 BITMAPV5HEADER之後開始。 如果 bV5ClrUsed 為非零值,則色彩表格會用於 Palettized 裝置上, 而 bV5ClrUsed 會指定專案數目。
bV5ClrImportant
顯示點陣圖所需的色彩索引數目。 如果此值為零,則需要所有色彩。
bV5RedMask
指定每個圖元紅色元件的色彩遮罩,只有在 bV5Compression 設定為 BI_BITFIELDS時才有效。
bV5GreenMask
指定每個圖元綠色元件的色彩遮罩,只有在 bV5Compression 設定為 BI_BITFIELDS時才有效。
bV5BlueMask
指定每個圖元藍色元件的色彩遮罩,只有在 bV5Compression 設定為 BI_BITFIELDS時才有效。
bV5AlphaMask
指定每個圖元 Alpha 元件的色彩遮罩。
bV5CSType
DIB 的色彩空間。
下表指定 bV5CSType的值。
值 | 意義 |
---|---|
LCS_CALIBRATED_RGB | 這個值表示端點和 gamma 值是在適當的欄位中提供。 |
LCS_sRGB | 指定點陣圖位於 sRGB 色彩空間中。 |
LCS_WINDOWS_COLOR_SPACE | 這個值表示點陣圖位於系統預設色彩空間 sRGB 中。 |
PROFILE_LINKED | 這個值表示 bV5ProfileData 指向設定檔的檔案名,以使用 (gamma 和端點值會忽略) 。 |
PROFILE_EMBEDDED | 此值表示 bV5ProfileData 指向記憶體緩衝區,其中包含要用於 (gamma 和端點值的設定檔,) 。 |
如需定義邏輯色彩空間的資訊,請參閱 LOGCOLORSPACE 結構。
bV5Endpoints
CIEXYZTRIPLE結構,指定三種色彩的 x、y 和 z 座標,這些色彩對應至與點陣圖相關聯之邏輯色彩空間的紅色、綠色和藍色端點。 除非 bV5CSType 成員指定LCS_CALIBRATED_RGB,否則會忽略此成員。
bV5GammaRed
紅色的擷取回應曲線。 如果 bV5CSType 設定為 LCS_CALIBRATED_RGB,則會使用 。 以不帶正負號的固定 16.16 格式指定 。 上層 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
bV5GammaGreen
綠色的Nned 回應曲線。 如果 bV5CSType 設定為 LCS_CALIBRATED_RGB,則會使用 。 以不帶正負號的固定 16.16 格式指定 。 上層 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
bV5GammaBlue
藍色的調色回應曲線。 如果 bV5CSType 設定為 LCS_CALIBRATED_RGB,則會使用 。 以不帶正負號的固定 16.16 格式指定 。 上層 16 位是不帶正負號的整數值。 較低的 16 位是小數部分。
bV5Intent
點陣圖的轉譯意圖。 這可以是下列其中一個值。
值 | Intent | ICC 名稱 | 意義 |
---|---|---|---|
LCS_GM_ABS_COLORIMETRIC | 相符項目 | 絕對色彩對稱 | 維護白點。 比對色彩與目的地遊戲中最接近的色彩。 |
LCS_GM_BUSINESS | Graphic | 飽和度 | 維持飽和度。 用於商務圖表和其他需要未驗證色彩的情況。 |
LCS_GM_GRAPHICS | 證明 | 相對色彩對稱 | 維護色度比對。 用於圖形設計和具名色彩。 |
LCS_GM_IMAGES | Picture | 感性 | 維持對比。 用於相片和自然影像。 |
bV5ProfileData
從 BITMAPV5HEADER 結構的開頭到設定檔資料開頭的位移,以位元組為單位。 如果設定檔是內嵌的,則設定檔資料是實際的設定檔,而且已連結。 (設定檔資料是 profile 的 Null 終止檔案名。) 這不能是 Unicode 字串。 它必須由 Windows 字元集的字元獨佔組成, (字碼頁 1252) 。 除非 bV5CSType 成員指定PROFILE_LINKED或PROFILE_EMBEDDED,否則會忽略這些設定檔成員。
bV5ProfileSize
內嵌設定檔資料的大小,以位元組為單位。
bV5Reserved
此成員已保留。 其值應該設定為零。
備註
如果 bV5Height 為負數,表示由上而下 DIB, bV5Compression 必須是BI_RGB或BI_BITFIELDS。 無法壓縮由上而下的 DIB。
ICM) 2.0 (獨立色彩管理介面可讓國際色彩聯盟 () 色彩設定檔連結或內嵌在 DIB (DIB) 。 如需詳細資訊,請參閱 使用結構 。
當 DIB 載入記憶體時,如果存在) 應該遵循色彩資料表,則設定檔資料 (, 而 bV5ProfileData 應該從 BITMAPV5HEADER 結構的開頭提供設定檔資料的位移。 在 bV5ProfileData中儲存的值會與指定BITMAPV5HEADER引數的sizeof運算子所傳回的值不同,因為bV5ProfileData是從BITMAPV5HEADER結構的開頭到設定檔資料開頭的位元組位移。 (點陣圖位不會遵循記憶體中的色彩資料表) 。 應用程式在將 DIB 載入記憶體之後,應該修改 bV5ProfileData 成員。
針對封裝的 DIB,設定檔資料應遵循類似檔案格式的點陣圖位。 bV5ProfileData成員仍然應該從BITMAPV5HEADER開頭提供設定檔資料的位移。
只有當bV5Size等於BITMAPV5HEADER大小,而bV5CSType等於PROFILE_EMBEDDED或PROFILE_LINKED時,應用程式才應該存取設定檔資料。
如果設定檔已連結,設定檔的路徑可以是任何完整名稱, (包括可使用 CreateFile 函式開啟的網路路徑) 。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
標頭 | wingdi.h (包含 Windows.h) |