begin process at 2008 09 06 03:28:39
1 237 639 membres
38 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Packed DIB et BMP [ Archives / Multimédia ] (Shadiest)

Packed DIB et BMP le 28/10/2005 18:11:00

Shadiest
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 !

Re : Packed DIB et BMP le 28/10/2005 18:32:34

Shadiest

    P.S :
         test.EcritureEntete(avi_info.dwWidth,avi_info.dwHeight,24);

     Et non le contraire, ça n'enleve rien à mon probleme mais l'image est lisible mais n'est pas correcte...

Re : Packed DIB et BMP le 28/10/2005 18:35:25

Shadiest
Réponse acceptée !
J'ai trouvé l'erreur :

for(int i=0;i<avi_info.dwHeight*avi_info.dwWidth*sizeof(BYTE);i++)

for(int i=0;i<avi_info.dwHeight*avi_info.dwWidth*sizeof(BYTE)*3;i++) car il y a trois composante RVB ...

J'espere au moin que ce topic aidera quelqu'un...


Classé sous : fichier, test, frame, stream, avi

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS