我正在编写视频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扫描线是上下颠倒读取的,您需要一次遍历扫描线中的数据并将其反转。
我不知道执行此操作的简单方法。