DIB圖素位元

DIB檔案的最後部分(在大多數情況下是DIB檔案的主體)由實際的DIB的圖素位元組成。圖素位元是由從圖像的底行開始並沿著圖像向上增長的水平行組織的。
DIB中的行數等於BITMAPCOREHEADER結構的bcHeight欄位。每一行的圖素數等於該結構的bcWidth欄位。每一行從最左邊的圖素開始,直到圖像的右邊。每個圖素的位元數可以從bcBitCount欄位取得,為1、4、8或24。
以位元組為單位的每行長度始終是4的倍數。行的長度可以計算為:
RowLength = 4 * ((bmch.bcWidth * bmch.bcBitCount + 31) / 32) ;
或者在C內用更有效的方法:
RowLength = ((bmch.bcWidth * bmch.bcBitCount + 31) & ~31) >> 3 ;
如果需要,可通過在右邊補充行(通常是用零)來完成長度。圖素資料的總位元組數等於RowLength和bmch.bcHeight的乘積。
要了解圖素編碼的方式,讓我們分別考慮四種情況。在下面的圖表中,每個位元組的位元顯示在框內並且編了號,7表示最高位元,0表示最低位元。圖素也從行的最左端從0開始編號。

相關詞條

熱門詞條

聯絡我們