我从文件中加载了一个图像并想将其写入 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()
。加载后的图像是自上而下的。