|
我自己写了一个载入bmp图形(24位)的函数,可是每次运行以后,只有画面上方的一部分有画面,其他部分均为灰色.
开始的时候,我以为是我的显示图形的函数写错了,可是仔细检查以后,发现更本没有毛病.在一次偶然的机会下,我换了一个函数来读取bmp文件的数据区,结果就能正常显示了.如下:
刚开始的时候使用的函数:
BMPPIC bitmap;
____________________________
//BMPPIC是自己定义的结构
typedef struct BMPPIC_TAG
{
BITMAPFILEHEADER bitmapfileheader; //文件头
BITMAPINFOHEADER bitmapinfoheader; //头信息
UCHAR *buffer;
} BMPPIC, *BMP_FILE;
_____________________________
infile.read(reinterpret_cast<char*>(&bitmap>bitmapfileheader),
sizeof(BITMAPFILEHEADER));
...............
infile.read(reinterpret_cast<char*>(&bitmap->bitmapinfoheader),
sizeof(BITMAPINFOHEADER));
...............
//好象问题就出在这里.
infile.read(bitmap->buffer,bitmap->bitmapinfoheader.biSizeImage);
然后显示画面______(结果就像我开头说的那样)
后来我使用的函数:
_lread(file_handle, &bitmap->bitmapfileheader,
sizeof(BITMAPFILEHEADER));
..................
_lread(file_handle, &bitmap->bitmapinfoheader,
sizeof(BITMAPINFOHEADER));
..................
_lread(file_handle,bitmap->buffer,
bitmap->bitmapinfoheader.biSizeImage);
接着显示画面,正常!
请问,问题是出在哪里呢?望知道的朋友不吝指教啊!
|
|