Clip
Publié : jeu. 12/juil./2007 23:21
Ce programme permet de visualiser des vidéos. (Il s'adresse à de jeunes enfants)
Les clips étant stockés dans un répertoire, on spécifie ce répertoire en paramètre.
J'utilise Media Player Classic pour visualiser les vidéos et sauvegarder une image par clip.
On extrait donc une image par clip au format jpg
Exemple pour un clip nommé : SuperClip.avi
On génèrera dans le même dossier grace à Media Player Classic 'SuperClip.avi.jpg'
Voili voila
Les clips étant stockés dans un répertoire, on spécifie ce répertoire en paramètre.
J'utilise Media Player Classic pour visualiser les vidéos et sauvegarder une image par clip.
On extrait donc une image par clip au format jpg
Exemple pour un clip nommé : SuperClip.avi
On génèrera dans le même dossier grace à Media Player Classic 'SuperClip.avi.jpg'
Voili voila
Code : Tout sélectionner
;/ PureBasic 4.10beta2 : 12/07/07
; Spécifier en ligne de commande le chemin vers les vidéos
; enregistrer les images sous le format jpg avec ajout d'extension
; ex: toto.flv -> toto.flv.jpg
Dossier.s=ProgramParameter()
If FileSize(Dossier)<>-2
MessageRequester("Erreur Dossier ",Dossier+" introuvable")
End
EndIf
UseJPEGImageDecoder()
#Largeur=1024
#LargeurImage=240
#HauteurImage=180
#StatusBar=3000
Procedure.l SearchDirectory(dir$, yourLinkedList.s(), pattern$="", recursive=1)
Static level.l=-1
If Not Right(dir$, 1) = "\"
dir$+"\"
EndIf
Protected dir.l=ExamineDirectory(#PB_Any, dir$, pattern$)
If dir
While NextDirectoryEntry(dir)
If DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
AddElement(yourLinkedList())
For n=CountString(dir$, "\")-level To CountString(dir$, "\")
yourLinkedList()+StringField(dir$, n, "\")+"\"
Next
yourLinkedList()+DirectoryEntryName(dir)
If DirectoryEntryType(dir) = #PB_DirectoryEntry_Directory
yourLinkedList()+"\"
EndIf
EndIf
Wend
FinishDirectory(dir)
EndIf
Protected all.l=ExamineDirectory(#PB_Any, dir$, "")
If all
While NextDirectoryEntry(all)
If DirectoryEntryType(all) = #PB_DirectoryEntry_Directory And DirectoryEntryName(all) <> "." And DirectoryEntryName(all) <> ".."
level+1
SearchDirectory(dir$+DirectoryEntryName(all)+"\", yourLinkedList(), pattern$, recursive)
level-1
EndIf
Wend
FinishDirectory(all)
EndIf
ProcedureReturn CountList(yourLinkedList())
EndProcedure
Procedure.s SupprimeExtension(Fichier.s) ; Renvoie rien si le fichier n'existe pas
Fichier.s=Left(Fichier,Len(Fichier)-4)
If FileSize(Fichier)=-1
ProcedureReturn
Else
ProcedureReturn Fichier
EndIf
EndProcedure
OpenWindow(0,0,0, #Largeur,#HauteurImage+80,"CLIPS",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
CreateStatusBar(#StatusBar,WindowID(0))
NewList Images.s()
NbImages=SearchDirectory(Dossier, Images(), "*.jpg", 1)
ForEach Images()
Images()=Dossier+Images()
Next
ScrollAreaGadget(#PB_Any, 10, 10, #Largeur-20,#HauteurImage+40,(NbImages+1)*#LargeurImage,#HauteurImage+40,1)
ForEach Images()
id=LoadImage(#PB_Any,Images())
ResizeImage(id,#LargeurImage,#HauteurImage)
If id
Video.s=SupprimeExtension(Images())
If Video<>""
ButtonImageGadget(n,n*#LargeurImage+10*n,10,#LargeurImage,#HauteurImage,ImageID(id))
GadgetToolTip(n,StringField(GetFilePart(Images()),1,"."))
n+1
Else
MessageRequester("Suppression",Images())
DeleteElement(Images(),1)
EndIf
EndIf
Next
CloseGadgetList()
Repeat
evt=WaitWindowEvent()
If evt=#PB_Event_Gadget And EventType()=#PB_EventType_LeftClick
Bouton=EventGadget()
If Bouton=<CountList(Images())
SelectElement(Images(),Bouton)
StatusBarText(#StatusBar,0,SupprimeExtension(Images()))
RunProgram(SupprimeExtension(Images()))
EndIf
EndIf
Until evt=#PB_Event_CloseWindow