做图像处理时的源文件一般要用无损的图像文件格式,位图(BitMap)是windows系统下可存储无压缩图像的文件格式。要实现位图文件的读取和存储,首先要明白位图文件的的存储数据结构。位图文件由四部分依序组成:BITMAPFILEHEADER,BITMAPINFOHEADER,调色板,Image Data。
1)BITMAPFILEHEADER结构的长度是固定的14个字节,描述文件的有关信息。其数据结构是:
typedef struct tagBITMAPFILEHEADER {
WORD bfType;//must be 0x4D42.
DWORD bfSize;//the size of the whole bitmap file.
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;//the sum bits of BITMAPFILEHEADER,BITMAPINFOHEADER and RGBQUAD;the index byte of the image data.
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
2)BITMAPINFOHEADER结构的长度是固定的40个字节,描述图像的有关信息。其数据结构是:typedef struct tagBITMAPINFOHEADER{
DWORD biSize;//the size of this struct.it is 40 bytes.
LONG biWidth;//the width of image data. the unit is pixel.
LONG biHeight;//the height of image data. the unit is pixel.
WORD biPlanes;//must be 1.
WORD biBitCount;//the bit count of each pixel.usually be 1,4,8,or 24.
DWORD b