天天看點

常見圖檔格式詳解系列(二)----BMP

BMP

BMP是windows的一種圖檔格式,其組織方式其實相對簡單喽,一個簡單表示bmp檔案的頭結構 (BITMAPFILEHEAER)+ 一個表示圖檔資訊的結構(BITMAPINFOHEADER)+ 一個表示調色闆的結構(可選)。剩下的便是存儲的每一個像素點對應的R,G,B值。

常見圖檔格式詳解系列(二)----BMP

BITMAPFILEHEADER

WORD bfType:表示檔案類型,該值必須是0x424D,即字元‘BM’,否則便不是BMP圖檔。

DWORD bfSize:以位元組為機關,表示整個圖像檔案的大小。

如需要添加清單可繼續從左邊點選添加

WORD bfReserved1:保留,必須設為0

WORD bfReserved2:保留,必須設為0

DWORD bfOffbits:表示從檔案頭開始到實際的像素之間的偏移,由于調色闆的不固定性,實際像素開始的位置可能發生變化,通過此值便可以确定。

常見圖檔格式詳解系列(二)----BMP

BITMAPINFOHEADER

DWORD biSize:說明本結構所占用的位元組數,一般為0x28,即40個位元組。

DWORD biWidth:很明顯喽,表示圖檔的寬度。

DWORD biHeight:同上,表示圖檔的高度。

WORD biPlanes:表示目标裝置平面數,為1。

WORD biBitCount:表示比特/像素,即每個像素占用多少比特值表示,一般值為1,4,8,16,24,32。

DWORD biCompression:表示像素的壓縮類型,一般情況下都為不壓縮類型,即BI_RGB,還有可選項為BI_RLE4,BI_RLE8,BI_JPEG,BI_BITFIELDS,再此就不贅述喽。

DWORD biSizeImage:說明圖像的大小,以位元組為機關,如果是BI_RGB類型,可設為0。

LONG biXPelsPerMeter:水準分辨率,機關像素/米。

LONG biYPelsPerMeter:垂直分辨率,機關像素/米。

DWORD biClrUsed:說明位圖實際使用的彩色表中的索引顔色數(設為0的話,則說民使用所有調色闆項)。

DWORD biClrImportant: 表示對圖像顯示有重要影響的顔色索引的數目,0表示都重要。

還是舉個栗子吧,請看圖:

常見圖檔格式詳解系列(二)----BMP