 
 Une QUESTION ME TAREAUDE (au sens figurer allon allon)
Est il possible de créer une video (peu importe le format pour l'instant) à partir de plusieurs image sélectionnées?
Merci pour vos réponses

 
 

juste pour montrer que meme sans "comprendre" le code, il suffit d'essayer !!Fortix a écrit :Tu as certainement raison Nico mais le problème c'est qu'à la base je ne connais ni le principe, ni la méthode pour creer une vidéo pour pouvoir modifier il faut dabort comprendre pas vrai?

 ,..........
 ,.......... 
  
 je supose que oui vu la strucutre dans le codeFortix a écrit : est il possible de creer des vidéos avec des image *.bmp 24 BITS
merci à vous
Code : Tout sélectionner
Structure bitmap24
  bmiHeader.BITMAPINFOHEADER
EndStructure 


Code : Tout sélectionner
#streamtypeVIDEO = $73646976 
#Lib = 0 
Structure bitmap24 
    bmiHeader.BITMAPINFOHEADER 
EndStructure 
Structure AVISTREAMINFO 
    fccType.l 
    fccHandler.l 
    dwFlags.l 
    dwCaps.l 
    wPriority.w 
    wLanguage.w 
    dwScale.l 
    dwRate.l 
    dwStart.l 
    dwLength.l 
    dwInitialFrames.l 
    dwSuggestedBufferSize.l 
    dwQuality.l 
    dwSampleSize.l 
    rcFrame.RECT 
    dwEditCount.l 
    dwFormatChangeCount.l 
    szName.b[64] 
EndStructure 
Structure AVICOMPRESSOPTIONS 
    fccType.l 
    fccHandler.l 
    dwKeyFrameEvery.l 
    dwQuality.l 
    dwBytesPerSecond.l 
    dwFlags.l 
    *lpFormat.l 
    cbFormat.l 
    *lpParms.l 
    cbParms.l 
    dwInterleaveEvery.l 
EndStructure 
NewList bitmap.s() 
NewList memoire.l() 
Debug SizeOf(bitmap24) 
Debug (SizeOf(BITMAPFILEHEADER)) 
Fichier.s = OpenFileRequester("Sélection multiple des Fichiers Bitmaps", "", "Fichiers BMP|*.bmp", 0, #PB_Requester_MultiSelection) 
If Fichier 
    ;Debug  Fichier 
    AddElement(bitmap()) 
    bitmap()= Fichier
     
    Repeat 
        Fichier = NextSelectedFileName() 
        
        If Fichier 
            AddElement(bitmap()) 
            bitmap()= Fichier 
            ;Debug Fichier 
        EndIf 
    Until Fichier = "" 
EndIf 
ForEach bitmap()
 
    If ReadFile(0, bitmap()) 
        ;Debug Lof(0) 
        CallDebugger 
        FileSeek(0,SizeOf(BITMAPFILEHEADER)) 
        bmi.bitmap24 
    
        ReadData(0,@bmi, SizeOf(bitmap24)) 
          
        If  bmi\bmiHeader\biWidth 
            If  bmi\bmiHeader\biHeight 
                If  bmi\bmiHeader\biBitCount=24 
                    If  bmi\bmiHeader\biSizeImage=0 
                        bmi\bmiHeader\biSizeImage=Lof(0)-54 
                    EndIf 
                    
                    FileSeek(0,54) 
                    AddElement(memoire()) 
                    memoire() =GlobalAlloc_(#GMEM_FIXED|#GMEM_ZEROINIT, bmi\bmiHeader\biSizeImage) 
                    ReadData(0,memoire(), bmi\bmiHeader\biSizeImage) 
                EndIf 
            EndIf 
        EndIf 
    
        CloseFile(0) 
    EndIf 
Next 
  
If OpenLibrary  ( #Lib , "AVIFIL32.DLL") 
    CallFunction ( #Lib,  "AVIFileInit" ) 
    
    avifile.s = SaveFileRequester ( "Nom du fichier Avi à enregistrer", "", "Video|*.avi", 0 ) 
    
    If GetExtensionPart(avifile)="" 
        avifile=avifile+".avi" 
    EndIf 
    
    ;Debug avifile 
  
    If CallFunction( #Lib, "AVIFileOpen", @pAVIFile.IAVIFILE, @avifile, (#OF_WRITE | #OF_CREATE), 0 )=0 
        strhdr.AVISTREAMINFO 
        strhdr\fccType                = #streamtypeVIDEO 
        strhdr\fccHandler             = 0 
        strhdr\dwScale                = 1 
        strhdr\dwRate                 = 4 
        strhdr\dwSuggestedBufferSize  = bmi\bmiHeader\biSize 
        
        If SetRect_(@strhdr\rcFrame, 0, 0, bmi\bmiHeader\biWidth, bmi\bmiHeader\biHeight) <>0 
            If CallFunction( #Lib, "AVIFileCreateStream", pAVIFile, @pAVIStream, @strhdr) =0 
                opts.AVICOMPRESSOPTIONS
                 
                Dim aopts(0) 
                aopts(0)=@opts 
            
                #ICMF_CHOOSE_KEYFRAME=1 
                #ICMF_CHOOSE_DATARATE=2 
                #AVIERR_OK=0 
                #AVIIF_KEYFRAME=$10
                 
                If CallFunction( #Lib, "AVISaveOptions", 0, #ICMF_CHOOSE_KEYFRAME | #ICMF_CHOOSE_DATARATE, 1, @pAVIStream, @aopts(0)) =1 
                    If CallFunction( #Lib, "AVIMakeCompressedStream", @pAVICompressed, pAVIStream, aopts(0), 0)=#AVIERR_OK 
                        If CallFunction( #Lib, "AVIStreamSetFormat", pAVICompressed, 0, @bmi, SizeOf(bitmap24)) =0 
                        
                            ForEach memoire()
                             
                                If memoire() 
                                    If CallFunction( #Lib, "AVIStreamWrite", pAVICompressed, index, 1,  memoire() , bmi\bmiHeader\biSizeImage, #AVIIF_KEYFRAME, 0,0) =0 
                                        index=index+1 
                                    EndIf 
                                EndIf 
                            Next 
                        
                        EndIf
                         
                        CallFunction( #Lib, "AVIStreamRelease", pAVICompressed) 
                    EndIf 
                EndIf 
                
                CallFunction( #Lib, "AVIStreamRelease", pAVIStream ) 
            EndIf 
        EndIf
         
        CallFunction( #Lib, "AVIFileRelease", pAVIFile) 
    EndIf
   
    CallFunction( #Lib, "AVIFileExit" ) 
    CloseLibrary( #Lib ) 
  
    ForEach memoire() 
        GlobalFree_(memoire()) 
    Next
     
    MessageRequester("Info","Nombre de Frames enregistrées: "+Str(index)) 
EndIf
