點陣圖標頭類型

點陣圖有四種基本標頭類型:

四種類型的點陣圖標頭會以 Size 成員區分,這是每個結構中的第一個 DWORD

BITMAPV5HEADER結構是擴充的 BITMAPV4HEADER結構,這是擴充的 BITMAPINFOHEADER結構。 不過, BITMAPINFOHEADERBITMAPCOREHEADER 只有與其他點陣圖標頭結構通用的 Size 成員。

BITMAPINFOHEADERBITMAPV5HEADER格式已分別被BITMAPINFOHEADERBITMAPV5HEADER格式取代。 BITMAPCOREHEADERBITMAPV4HEADER格式會針對完整性和回溯相容性而呈現。

DIB 的格式如下 (,如需詳細資訊,請參閱 點陣圖儲存體 ) :

色彩表格描述圖元值如何對應至 RGB 色彩值。 RGB 是一種模型,用來描述發出光線所產生的色彩。

設定檔資料是指設定檔 檔案名 (連結設定檔) 或 (內嵌設定檔) 的實際設定檔位。 檔案格式會將設定檔資料放在檔案結尾。 如果出現) ,設定檔資料會放在色彩資料表之後 (。 不過,如果函式收到封裝的 DIB,設定檔資料會在點陣圖位之後出現,例如檔案格式。

只有bV5CSType PROFILE_LINKED或PROFILE_EMBEDDED的BITMAPV5HEADER結構才會有設定檔資料。 對於接收封裝 DIB 的函式,設定檔資料會在點陣圖資料之後。

調色盤裝置是使用調色盤指派色彩的任何裝置。 Palettized 裝置的傳統範例是在 8 位色彩深度 (執行的顯示器,也就是 256 種色彩) 。 此模式中的顯示會使用小型色彩表格,將色彩指派給點陣圖。 點陣圖中的色彩會指派給裝置所使用的調色盤中最接近的色彩。 Palettized 裝置不會建立顯示點陣圖的最佳調色盤;它只會使用目前調色盤中的任何內容。 應用程式會負責建立調色盤,並將它選取到系統中。 一般而言,16 位、24 位和每圖元 32 位 (bpp) 點陣圖不包含 ( (色彩表;點陣圖) 的最佳調色盤;在此案例中,應用程式會負責產生最佳調色盤。 不過,16-、24 和 32-bpp 點陣圖可以包含這類最佳色彩表格,用於在 Palettized 裝置上顯示;在此情況下,應用程式只需要根據點陣圖檔案中存在的色彩資料表建立調色盤。

1、4 或 8 bpp 的點陣圖必須有根據 bpp 大小上限的色彩表格。 1、4 和 8 bpp 點陣圖的大小上限為 bpp 的 2 到 2。 因此,1 個 bpp 點陣圖最多有兩個色彩,4 個 bpp 點陣圖最多有 16 個色彩,而 8 個 bpp 點陣圖最多有 256 個色彩。

16、24 或 32-bpp 的點陣圖不需要色彩表格,但可能必須指定調色裝置的色彩。 如果 16-、24 或 32-bpp 點陣圖有色彩表格存在, biClrUsed 成員會指定色彩表格的大小,而且色彩表格中必須有該許多色彩。 如果 biClrUsed 為零,則沒有色彩表格。

BI_BITFIELD點陣圖的紅色、綠色和藍色位欄位遮罩會緊接在 BITMAPINFOHEADERBITMAPV4HEADER 和 BITMAPV5HEADER結構之後BITMAPV4HEADERBITMAPV5HEADER結構包含紅色、綠色和藍色遮罩的其他成員,如下所示。

成員 意義
RedMask 指定每個圖元紅色元件的色彩遮罩,只有在 Compression 成員設定為BI_BITFIELDS時才有效。
GreenMask 指定每個圖元綠色元件的色彩遮罩,只有在 Compression 成員設定為BI_BITFIELDS時才有效。
BlueMask 指定每個圖元藍色元件的色彩遮罩,只有在 Compression 成員設定為BI_BITFIELDS時才有效。

 

BITMAPINFOHEADERbiCompression成員設定為 BI_BITFIELDS,且函式收到LPBITMAPINFO類型的引數時,色彩遮罩會緊接在標頭後面。 如果有的話,色彩表格會遵循色彩遮罩。 BITMAPCOREHEADER 點陣圖不支援色彩遮罩。

根據預設,點陣圖資料會以其格式由下而上。 由下而上表示點陣圖資料中的第一個掃描線是要顯示的最後一個掃描線。 例如,10圖元點陣圖之點陣圖資料第 0掃描線的第 0 圖元 x 10 圖元點陣圖將會是所顯示或列印影像第 9掃描線的第 0 圖元。 執行長度編碼 (RLE) 格式點陣圖和 BITMAPCOREHEADER 點陣圖不可以是由上而下位的點陣圖。 掃描行會對齊 DWORD ,但 RLE 壓縮點陣圖除外。 除了 RLE 壓縮點陣圖以外,它們必須填補掃描線條寬度,以位元組為單位,四個不平均除。 例如,10 x 10 圖元的 24-bpp 點陣圖在每個掃描行結尾會有兩個填補位元組。