尝试将位图复制到WMP渲染器中 - >上下翻转!

时间:2010-04-27 15:21:02

标签: c++ bitmap wmp dmo

我正在编写一个视频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.

这会产生颠倒的图像。我应该在这段代码中更改什么?

谢谢!

Roey。

2 个答案:

答案 0 :(得分:1)

HBITMAP扫描线是颠倒读取的,您需要一次扫描一条扫描线并反转它。

我不知道有一种简单的方法可以做到这一点。

答案 1 :(得分:1)

如果你可以改变位图结构的参数,你可以给它一个负高度,使这些线以自上而下的顺序出现。