Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lepiaf31
Messages : 510 Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :
Message
par lepiaf31 » ven. 17/avr./2009 12:55
Bonjour à tous !
Je cherche un moyen pour "extraire" une image d'une video. J'ai essayé de lire la video sur un sprite à l'aide de la fonction RenderMovieFrame() puis d'enregistrer le sprite grâce à SaveSprite() mais la fonction RenderMovieFrame() n'a pas l'air de fonctionner avec les videos au format DivX.
Si quelqu'un saurait comment faire, je serais ravi :p
Merci
EDIT: Bon j'ai trouvé un ptit code sympa sur purearea:
http://www.purearea.net/pb/CodeArchiv/M ... nverter.pb
EDIT2: probleme: lecode que j'ai trouvé ne marche que pour les videos de type avi et je voudrais que cela soit compatible qvec d'autres formats
beauregard
Messages : 1307 Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse
Message
par beauregard » ven. 17/avr./2009 16:19
lepiaf31 a écrit : EDIT2: probleme: lecode que j'ai trouvé ne marche que pour les videos de type avi et je voudrais que cela soit compatible qvec d'autres formats
bonjour, Free video converter est un logiciel gratuit de convertion.
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
Ollivier
Messages : 4197 Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :
Message
par Ollivier » ven. 17/avr./2009 22:53
Voici un code récupéré
ici .
Code : Tout sélectionner
Structure PB_StructureMovie
Movie.IGraphBuilder
MediaControl.IMediaControl
MediaEvent.IMediaEventEx
Window.IVideoWindow
Audio.IBasicAudio
Video.IBasicVideo
MediaSeeking.IMediaSeeking
state.l
EndStructure
Procedure.l CaptureFrame(MovieNumber, ImageNumber)
Protected *Movie.PB_StructureMovie, *Video.IBasicVideo, *Window.IVideoWindow
Protected *ImageData.BITMAPINFOHEADER, DataSize, Parent, Result
*Movie = IsMovie(MovieNumber)
*Movie + MovieNumber * SizeOf(PB_StructureMovie)
*Window = *Movie\Window
*Video = *Movie\Video
Result = 0
If *Video\GetCurrentImage(@DataSize, 0) = #S_OK
*ImageData = AllocateMemory(DataSize)
If *ImageData
If *Video\GetCurrentImage(@DataSize, *ImageData) = #S_OK
If IsImage( ImageNumber )
hBmp = ImageID( ImageNumber )
w = ImageWidth(ImageNumber)
h = ImageHeight(ImageNumber)
bmi.BITMAPINFO
bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
bmi\bmiHeader\biWidth = w
bmi\bmiHeader\biHeight = h
bmi\bmiHeader\biPlanes = 1
bmi\bmiHeader\biBitCount = ImageDepth(ImageNumber)
bmi\bmiHeader\biBitCount = 32
bmi\bmiHeader\biCompression = #BI_RGB
hdc = StartDrawing(ImageOutput(ImageNumber))
If hdc
SetDIBits_( hdc, hBmp, 0, h, *ImageData, @bmi, #DIB_RGB_COLORS)
StopDrawing()
EndIf
EndIf
EndIf
FreeMemory(*ImageData)
EndIf
EndIf
*Window\get_Owner(@Parent)
RedrawWindow_(Parent,0,0,#RDW_INVALIDATE)
ProcedureReturn Result
EndProcedure