我看了bmp的结构,但不是明白如何把文件打开后通过程序分析那些域。怎样把文件读进来变成变量呢
下面是个读.BMP文件的函数,读完数据再分析吧.
BOOL LoadBitmap( char szFileName[] )
{
BITMAPFILEHEADER BMPFileHeader;
BITMAPINFOHEADER BMPInfoHeader;
PALETTEENTRY Palette[256];
ifstream file;
file.open( szFileName, ios::in );
if(!file.is_open())
return FALSE;
// read bitmap file header
file.read( (char *)&BMPFileHeader, sizeof(BMPFileHeader) );
// test if bitmap file
if( BMPFileHeader.bfType != 0x4D42 )
{
file.close();
return FALSE;
}
// now read bitmap info header
file.read( (char *)&BMPInfoHeader, sizeof(BMPInfoHeader) );
// now test if the bitmap is 8 bit and read palette.
if( BMPInfoHeader.biBitCount == 8 )
{
// read palette
file.read( (char *)Palette, sizeof(Palette) );
}
// allocate memory to store image data
char *buffer = NULL;
buffer = new char[BMPInfoHeader.biSizeImage];
// read image data
file.read( (char *)buffer, BMPInfoHeader.biSizeImage );
return TRUE;
}