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;
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 指定本圖象中重要的顏色數,若是該值爲零,則認爲全部的顏色都是重要的。