認識BitMap

Bitmap由四個部分組成,分別爲:

1.位圖文件頭:

結構體如下:

	typedef struct tagBITMAPFILEHEADER {
		WORD    bfType;              //文件類型("BM")
		DWORD   bfSize;              //文件大小
		WORD    bfReserved1;         //保留字段0
		WORD    bfReserved2;         //保留字段0
		DWORD   bfOffBits;           //圖像文件到文件頭起始的偏移量
	} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;

2.位圖信息頭:

結構體如下:

typedef struct tagBITMAPINFOHEADER {
	DWORD      biSize;           //本結構體佔用大小
	LONG       biWidth;          //圖像寬度(單位:像素)
	LONG       biHeight;         //圖像高度(單位:像素)
	WORD       biPlanes;         //設備上圖像平面數,必須爲1
	WORD       biBitCount;       //存儲每個像素需要的二進制位數(1:單色;4:16色;8:256色;16:64K色(高彩色);24:16M色(真彩色);32:4096M色(增強型真彩色))
	DWORD      biCompression;    //是否壓縮存儲圖像數據
	DWORD      biSizeImage;      //指定圖像大小(單位:字節)
	LONG       biXPelsPerMeter;  //水平方向分辨率
	LONG       biYPelsPerMeter;  //豎直方向分辨率
	DWORD      biClrUsed;        //實際圖像使用顏色表中的顏色數
	DWORD      biClrImportant;   //重要的顏色數(0表示所有都重要)
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;

3.調色板:

結構體如下:

typedef struct tagRGBQUAD {
	BYTE    rgbBlue;             //藍色分量
	BYTE    rgbGreen;            //綠色分量
	BYTE    rgbRed;              //紅色分量
	BYTE    rgbReserved;         //保留值
} RGBQUAD;

4.位圖數據:

實際位圖數據是一片連續的存儲區域,其中保存着圖像中每個像素的灰度(顏色)信息。
(1)256色灰度圖像:圖像數據就是該像素的實際灰度,1個像素需要1個字節來表示。

(2)索引圖像:圖像數據就是該像素顏色在調色板中的索引值。

(3)真彩色圖:圖像數據就是實際的RGB值,1個像素需要3個字節來表示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章