bitmap格式分析

來源:互聯網
上載者:User

標籤:

我們來看看位元影像檔案(*.BMP)的格式。位元影像檔案主要分為如下3個部分:
塊名稱 對應Windows結構體定義 大小(Byte)
檔案資訊頭 BITMAPFILEHEADER 14
位元影像資訊頭 BITMAPINFOHEADER 40
RGB顏色陣列 BYTE* 由映像長寬尺寸決定
1、   檔案資訊頭BITMAPFILEHEADER結構體定義如下:typedef struct tagBITMAPFILEHEADER { /* bmfh */UINT bfType;  
DWORD bfSize; 
UINT bfReserved1; 
UINT bfReserved2; 
DWORD bfOffBits;} BITMAPFILEHEADER;其中:
bfType 說明檔案的類型,該值必需是0x4D42,也就是字元‘BM‘。
bfSize 說明該位元影像檔案的大小,用位元組為單位
bfReserved1 保留,必須設定為0
bfReserved2 保留,必須設定為0
bfOffBits 說明從檔案頭開始到實際的圖象資料之間的位元組的位移量。這個參數是非常有用的,因為位元影像資訊頭和調色盤的長度會根據不同情況而變化,所以你可以用這個位移值迅速的從檔案中讀取到位元據。
2、位元影像資訊頭BITMAPINFOHEADER結構體定義如下:typedef struct tagBITMAPINFOHEADER { /* bmih */DWORD biSize; 
LONG biWidth; 
LONG biHeight; 
WORD biPlanes; 
WORD biBitCount; 
DWORD biCompression; 
DWORD biSizeImage; 
LONG biXPelsPerMeter; 
LONG biYPelsPerMeter; 
DWORD biClrUsed; 
DWORD biClrImportant;} BITMAPINFOHEADER;其中:
biSize 說明BITMAPINFOHEADER結構所需要的字數。
biWidth 說明圖象的寬度,以象素為單位。
biHeight 說明圖象的高度,以象素為單位。註:這個值除了用於描述映像的高度之外,它還有另一個用處,就是指明該映像是倒向的位元影像,還是正向的位元影像。如果該值是一個正數,說明映像是倒向的,如果該值是一個負數,則說明映像是正向的。大多數的BMP檔案都是倒向的位元影像,也就是時,高度值是一個正數。
biPlanes 為目標裝置說明位面數,其值將總是被設為1。
biBitCount 說明位元數/象素,其值為1、4、8、16、24、或32。但是由於我們平時用到的映像絕大部分是24位和32位的,所以我們討論這兩類映像。
biCompression 說明圖象資料壓縮的類型,同樣我們只討論沒有壓縮的類型:BI_RGB。
biSizeImage 說明圖象的大小,以位元組為單位。當用BI_RGB格式時,可設定為0。
biXPelsPerMeter 說明水平解析度,用象素/米表示。
biYPelsPerMeter 說明垂直解析度,用象素/米表示。
biClrUsed 說明位元影像實際使用的彩色表中的色彩索引數(設為0的話,則說明使用所有調色盤項)。
biClrImportant 說明對圖象顯示有重要影響的色彩索引的數目,如果是0,表示都重要。
3、RGB顏色陣列有關RGB三色空間我想大家都很熟悉,這裡我想說的是在Windows下,RGB顏色陣列儲存的格式其實BGR。也就是說,對於24位的RGB位元影像像素資料格式是:
藍色B值 綠色G值 紅色R值
對於32位的RGB位元影像像素資料格式是:
藍色B值 綠色G值 紅色R值 透明通道A值
透明通道也稱Alpha通道,該值是該像素點的透明屬性,取值在0(全透明)到255(不透明)之間。對於24位的映像來說,因為沒有Alpha通道,故整個映像都不透明。 行對齊由於Windows在進行行掃描的時候最小的單位為4個位元組,所以當圖片寬 X 每個像素的位元組數 != 4的整數倍時要在每行的後面補上缺少的位元組,以0填充(一般來說當映像寬度為2的冪時不需要對齊)。 注意:bmp檔案的RGB資料第一行表示的是LCD最後一行的資料

bitmap格式分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.