2010-04-27 53 views
2

我正在写一个视频DMO解码器,并试图返回一个位图到WMP渲染器进行显示......但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。

回答

1

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

我不知道一个简单的方法来做到这一点。

1

如果您可以更改位图结构的参数,则可以给它一个负高度以使行按照自上而下的顺序出现。