GDI +位图LockBits返回旋转图像?

时间:2011-02-23 23:54:07

标签: c++ winapi bitmap gdi+ lockbits

我从文件加载了一个图像,并希望将其写入AVI文件:

Gdiplus::Bitmap frame(L"test.png", FALSE);
Gdiplus::BitmapData bmp_data = {};
Gdiplus::Rect rect(0, 0, frame.GetWidth(), frame.GetHeight());
frame.LockBits(&rect, Gdiplus::ImageLockModeRead, frame.GetPixelFormat(), 
    &bmp_data);
AVIStreamWrite(avi_stream, i, 1, bmp_data.Scan0, 
    std::abs(bmp_data.Stride) * bmp_data.Height, AVIIF_KEYFRAME, NULL, NULL);
frame.UnlockBits(&bmp_data);

产生的avi文件旋转180度。怎么了?

另外,我注意到原始图片是自下而上的(Bitmap::LockBits()返回负值BitmapData::Stride)。我通过Bitmap::Save()将其保存到磁盘。加载图像后自上而下。

0 个答案:

没有答案