Je souhaite extraire une image d'un fichier AVI pour, par la suite, lui appliquer des transformations
J'utilise donc la fonction "AVIStreamGetFrame" qui retourne (à ce que
j'ai compris) un pointeur sur "paquet DIB" qui contient l'entete
BITMAPINFOHEADER suivi des informations du Bitmap, je souhaite acceder
à ces informations et faire de ma frame un objet de la classe Image
décrite ici :
http://www.cppfrance.com/code.aspx?id=30768
Le problème est dans ma table qui semble mauvaise... (le fichier créé est illisible)
Le code :
AVIFileInit();//initialisation
PAVIFILE avi;
//ouverture du fichier AVI
AVIFileOpen(&avi, Name, OF_READ, NULL);
AVIFileInfo(avi, &avi_info, sizeof(AVIFILEINFO));
//Creation du stream
int streamNumber=0;
avi_stream=PAVISTREAM();
AVIFileGetStream(avi, &avi_stream, streamtypeVIDEO, 0);
PGETFRAME frame;
frame=AVIStreamGetFrameOpen(avi_stream, NULL);
unsigned char * pDIB = (unsigned char *) AVIStreamGetFrame(frame, 3);
Image test;
test.EcritureEntete(avi_info.dwHeight,avi_info.dwWidth,24);
//Lecture de la table (à ce niveau là que j'ai de serieux doutes...)
for(int i=0;i<avi_info.dwHeight*avi_info.dwWidth*sizeof(BYTE);i++)
test.PImage[i]=pDIB[i+sizeof(BITMAPINFOHEADER)];
test.Sauvegarde("test.bmp");
J'ai retirer les tests de validité du fichier pour que ça soit plus clair
Merci d'avance pour votre aide !