PR EXPERT: CAPTURE DATAPIXEL D UN FRAME D UN AVI [EN MEMOIRE]

Freneticode Messages postés 11 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 11 juillet 2002 - 14 mai 2002 à 11:53
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 - 15 mai 2002 à 08:11
---> FrenetiCode

Voici mon Code..!!

Private Sub cmd_open_Click()
Dim FILE As cFileDlg
Dim NAME_FILE As String
Dim AVI As Long
Dim STREAM As Long
Dim AVI_INFO As AVI_FILE_INFO
Dim STREAM_INFO As AVI_STREAM_INFO
Dim DATA_IMAGE() As Long
Dim i

Set FILE = New cFileDlg
    'get an avi filename from user
    With FILE
        .DefaultExt = "avi"
        .DlgTitle = "Choose a filename to save AVI to..."
        .Filter = "AVI Files|*.avi"
        .OwnerHwnd = Me.hwnd
    End With
   
    If FILE.VBGetOpenFileName(NAME_FILE) <> True Then Exit Sub
      
       
        
        Dim NB_FRAME As Long
        '// Initialisation du sous-système AVI
        ' AVIFileInit()
        '// Ouverture du fichier utilisateur en mode lecture seule et en mode partage
        i = AVIFileOpen(AVI, NAME_FILE, OF_READ, 0&)
        '// Récupération des informations sur le copyright, stream name, etc.
        i = AVIFileInfo(AVI, AVI_INFO, Len(AVI_INFO))
        '// Trouver le premier flux video (obligatoire)
        i = AVIFileGetStream(AVI, STREAM, OF_READ, 0)
       '// Récupére les information sur le stream
        i = AVIStreamInfo(STREAM, STREAM_INFO, Len(STREAM_INFO))
        '// Lecture du format d'un bloc sur la sortie video
        '// a verifier !!!!!!!!!!!
        i = AVIStreamReadFormat(STREAM, 0, STREAM_INFO.dwSampleSize, STREAM_INFO.dwLength)
       ' // Combien de frames contient le flux video ?
        NB_FRAME = AVIStreamLength(STREAM)
        '// Maintenant faire une boucle sur la lecture du flux videopour lire l'ensemble des
        '// frame le plus rapidement possible. Les frames video sont décompressées par la
        '// fonction  AVIStreamRead() en DIBs (dans le buffer szBuffering) ainsi nous n'avons
       ' // pas à nous pr\eoccuper de la décompression.
         ReDim DATA_IMAGE(1 To AVI_INFO.dwWidth * AVI_INFO.dwHeight * 3) As Long
        Dim a
        For a = 0 To STREAM_INFO.dwLength
            i = AVIStreamRead(STREAM, a, 1, &O0, STREAM_INFO.dwSuggestedBufferSize, DATA_IMAGE(1), &O0)
        Next
       ' // Libération des ressources du flux video
       i = AVIStreamRelease(STREAM)
       i = AVIFileRelease(AVI)
       'i = AVIFileExit()
'MsgBox VarPtr(DATA_IMAGE(1))
'MsgBox NB_FRAME
Dim bi24BitInfo As BITMAPINFO
    With bi24BitInfo.bmiHeader
        .biBitCount = 24
        .biCompression = BI_RGB
        .biPlanes = 1
        .biSize = Len(bi24BitInfo.bmiHeader)
      .biWidth = AVI_INFO.dwWidth
        .biHeight = AVI_INFO.dwHeight
    End With
SetDIBitsToDevice Picture1.hdc, 0, 0, AVI_INFO.dwWidth, AVI_INFO.dwHeight, 0, 0, 0, AVI_INFO.dwHeight, DATA_IMAGE(1), bi24BitInfo, DIB_RGB_COLORS

End Sub


HISTORY:
JE VEUX RECUPERER CHAQUE PIXEL DE CHAQUE FRAME D UN AVI POUR AINCI DEFORMER CHAQUE FRAME PUIS RECREER UN AVI DEFORMER.
MON SYSTEME DE DEFORMATION FUNCTIONNE , J ARRIVE CREE MON AVI DEFORMER ;-)....
LE BLEME EST QUE JE LE FAIT EN AFFICHAGE ET PAS EN MEMEOIRE...API GET ET SET PIXEL :-<
BUhh
ALORS VOICI UN DE MES CODE DE TEST POUR RECUPER LES DATAPIXEL D UN FRAME D UN AVI EN MEMOIRE. LE BLEME ET QUE LORSQUE QUE J AFFICHE LE DIB MEMOIRE IL AFFICHE UN CARRER NOIR!!!!!
MAIS OU SONT PASSEE MES DONNEE PIXEL
bouh
EXPERT A L AIDE!!!!!!!!!!
C EST UN PROJET DE DIPLOME CFC!!![Switzerland/FR]
SANS REPONCE CONCLUANTE D ICI A VENDREDI JE DEVRAIS REINITIALISER MON PROJET, VOIR MEME L'ABANDONNER.... !!!!DIPLOME EXPLOSE!!!NON!!ENFIN J ESPERE PAS!!! SOUS STRESSE ON NE SAIT PAS SE QUE N'ES CAPABLE :-)....

A L AIDE......

FRENETICODE...

4 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
14 mai 2002 à 12:32
J'avoue ma limite là....

Mais n'aurais tu pas un problème entre:
picture1.image <= > picture1.picture ???

parce que effectivement l'affichage doit marcher la mais pour la sauvegarde tu fais quoi ?

<center>http://www.lynx-asp.fr.st
WebMaster </center>
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
14 mai 2002 à 13:17
j'savais bien que j'avais trouvé un jour un térible tutorial sur les AVi :) Enfin je pense que tu peux trouver ton Bonheur...
http://www.shrinkwrapvb.com/avihelp/avihelp.htm
Ya tout bmp to avi avi to bmp etc etc ...
Bon courage lol

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
Freneticode Messages postés 11 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 11 juillet 2002
15 mai 2002 à 08:01
---> FrenetiCode

C'est tip-top Au Poil..!
PS mon Prog est en finition ;-)

thank's.... ..lynx..

Je ne peux qu'etre admiratif devant tous ses echange de savoir...


.... je n' ais qu un mot a dire...

"Mes Amis !! Continuons, car les pires de nos ennemis sont les avares et les peureux "

D ou je mentionnerais "mS",etc,..

Nous somme fort ensemble.. et le resteront si nous continuons dans cette voie..

PS lynx--->J ai une dette!!

...n'ésite pas a la faire valloire!!

amicalement Freneticode.
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
15 mai 2002 à 08:11
Ben c'était avec plaisir le ptit coup de patte ;)

Aller bon prog à toi :p

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
Rejoignez-nous