2

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

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

谢谢你!

罗伊。

4

2 回答 2

1

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

于 2010-04-27T15:56:58.547 回答
1

HBITMAP 扫描线是倒置读取的,您需要一次通过数据扫描线并将其反转。

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

于 2010-04-27T15:50:05.533 回答