I'm writing a video DMO decoder and trying to return a bitmap to the WMP renderer for display ... but WMP displays it upside down!
This is the code :
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.
This 开发者_运维知识库produces an upside down image. What should I change in this code?
Thank You!
Roey.
HBITMAP scanlines are read upside-down, you'll need to go through your data a scanline at a time and reverse it.
I'm not aware of an easy way to do this.
If you can change the parameters of the bitmap structure, you can give it a negative height to make the lines come out in top-down order.
精彩评论