我加载了我保存的Bitmap的位数组。 (和BITMAPINFOHEADER结构)。
HBITMAP Filemanager::LoadNextImageFromMyFile(HANDLE file)
{
HDC hdc = GetDC(father->hWindow->_hwnd);
DWORD dwTmp;
BITMAPFILEHEADER hdr;
ReadFile(file,&hdr,sizeof(BITMAPFILEHEADER),&dwTmp,NULL);
BITMAPINFOHEADER pbih;
ReadFile(file, &pbih,sizeof(BITMAPINFOHEADER)
+ hdr.bfReserved1 * sizeof (RGBQUAD),&dwTmp,NULL);
LPBYTE lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, pbih.biSizeImage);
BYTE* hp = lpBits;
ReadFile(file,hp,pbih.biSizeImage, &dwTmp, NULL);
return CreateBitmap(pbih.biWidth,pbih.biHeight,pbih.biPlanes,pbih.biBitCount, hp);;
}
我颠倒了形象。我该如何解决? (我认为逆转bitsArray将是一个解决方案,但也许有更好的方法?)
答案 0 :(得分:1)
调用CreateDIBitmap并在BITMAPV5HEADER中使用正高或负高度来使您的位图正确向上。 - David Heffernan 37分钟前