位圖信息頭BITMAPINFOHEADER

位圖信息頭BITMAPINFOHEADER


位圖信息頭BITMAPINFOHEADER,也是一個結構,其定義以下:
typedef struct tagBITMAPINFOHEADER{ 
DWORD biSize; 
LONG biWidth; 
LONG biHeight; 
WORD biPlanes; 
WORD biBitCount 
DWORD biCompression; 
DWORD biSizeImage; 
LONG biXPelsPerMeter; 
LONG biYPelsPerMeter; 
DWORD biClrUsed; 
DWORD biClrImportant; 
} BITMAPINFOHEADER;


這個結構的長度是固定的,爲40個字節(LONG爲32位整數),各個域的說明以下:

 biSize 指定這個結構的長度,爲40。spa

 biWidth 指定圖象的寬度,單位是象素。code

 biHeight 指定圖象的高度,單位是象素。 it

biPlanes 必須是1,不用考慮。 io

biBitCount 指定表示顏色時要用到的位數,經常使用的值爲1(黑白二色圖), 4(16色圖), 8(256色), 24(真彩色圖)(新的.bmp格式支持32位色,這裏就不作討論了)。class

 biCompression 指定位圖是否壓縮,有效的值爲BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一些Windows定義好的常量)。要說明的是,Windows位圖能夠採用RLE4,和RLE8的壓縮格式,但用的很少。咱們從此所討論的只有第一種不壓縮的狀況,即biCompression爲BI_RGB的狀況。 sed

biSizeImage 指定實際的位圖數據佔用的字節數,其實也能夠從如下的公式中計算出來: biSizeImage=biWidth’ × biHeight 要注意的是:上述公式中的biWidth’必須是4的整倍數(因此不是biWidth,而是biWidth’,表示大於或等於biWidth的,最接近4的整倍數。舉個例子,若是biWidth=240,則biWidth’=240;若是biWidth=241,biWidth’=244)。 若是biCompression爲BI_RGB,則該項可能爲零。數據

 biXPelsPerMeter 指定目標設備的水平分辨率,單位是每米的象素個數,關於分辨率的概念。di

 biYPelsPerMeter 指定目標設備的垂直分辨率,單位同上。ant

 biClrUsed 指定本圖象實際用到的顏色數,若是該值爲零,則用到的顏色數爲2biBitCount。co

 biClrImportant 指定本圖象中重要的顏色數,若是該值爲零,則認爲全部的顏色都是重要的。 

相關文章
相關標籤/搜索