2010-04-27 89 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

如果您可以更改位圖結構的參數,則可以給它一個負高度以使行按照自上而下的順序出現。