我正在编写视频DMO解码器,并尝试将位图返回到WMP渲染器以进行显示...但是WMP颠倒了显示它!

这是代码:

HBITMAP*  hBmp = new HBITMAP();

int result;

m_pScrRenderer->CreateFrame(hBmp, &result);  ///This returns the HBITMAP handle.

BITMAP bmStruct;

memset(&bmStruct, 0, sizeof(BITMAP));

GetObject(*hBmp, sizeof(BITMAP), &bmStruct);
int size = bmStruct.bmWidthBytes * bmStruct.bmHeight;
memcpy(pbOutData, bmStruct.bmBits, size); //PBoutData is WMP's renderer buffer.

这会产生上下颠倒的图像。我应该在此代码中进行哪些更改?

谢谢!

罗伊

最佳答案

HBITMAP扫描线是上下颠倒读取的,您需要一次遍历扫描线中的数据并将其反转。

我不知道执行此操作的简单方法。

10-08 12:02