2010-04-27 3 views
2

J'écris un décodeur vidéo DMO et j'essaie de retourner un bitmap au moteur de rendu WMP pour l'affichage ... mais WMP l'affiche à l'envers!en essayant de copier un bitmap dans le WMP Renderer -> à l'envers!

Voici le 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. 

Cela produit un envers l'image. Que devrais-je changer dans ce code?

Merci!

Roey.

Répondre

1

Les lignes de balayage HBITMAP sont lues à l'envers, vous devez parcourir vos données une ligne de balayage à la fois et les inverser.

Je ne suis pas au courant d'un moyen facile de le faire.

1

Si vous pouvez modifier les paramètres de la structure bitmap, vous pouvez lui donner une hauteur négative pour que les lignes sortent dans l'ordre descendant.

Questions connexes