Estrarre e salvare singole immagini durante l'esecuzione di un file video mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.
Versione del 15 lug 2017 alle 15:46 di Vuott (Discussione | contributi) (Creata pagina con "Per estrarre e salvare mediante il Componente ''gb.media'' singole immagini da un file video durante la sua esecuzione all'interno di un Oggetto ''DrawingArea'', si farà uso...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per estrarre e salvare mediante il Componente gb.media singole immagini da un file video durante la sua esecuzione all'interno di un Oggetto DrawingArea, si farà uso anche del Metodo ".GetScreenshot" della Classe "DesktopWindow".

Mostriamo un esempio pratico:

Private mp As MediaPlayer
Private da As DrawingArea
Private pc As New Picture[]
 

Public Sub Form_Open()
 
' Crea una "DrawingArea" come oggetto GUI da usare per l'uscita video:
 With da = New DrawingArea(Me)
   .X = 10
   .Y = 10
   .W = 480
   .H = 320
   .Background = Color.Black
 End With
 
 With mp = New MediaPlayer
   .URL = Media.URL("/home/ploppo/Scrivania/VIDEO/PASSATE ANTICHE_ Quadriglia Meridionale.mp4")
' Imposta il controllo dell'uscita video da usare:
   .SetWindow(da)
 End With
 
End


Public Sub Button1_Click()
 
' Avvia l'esecuzione del video:
 mp.Play()
  
End


Public Sub Button2_Click()
 
 Dim dw As DesktopWindow
  
  dw = New DesktopWindow(da.Handle)
  
' Cattura una schermata del contenuto video mostrato in quel momento dalla "DrawingArea":
  pc.Push(dw.GetScreenshot(True))
  
End


Public Sub Button3_Click()   

 Dim i As Integer
 Dim drc, s As String
 
' Arresta l'esecuzione del file video nella "DrawingArea":
  mp.Stop()
 
  drc = "/tmp/imago"
  
  If Not Exist(drc) Then
    Mkdir drc
  Else
    For Each s In Dir(drc, "picture_*", gb.file)
      Kill drc &/ s
    Next
  Endif
  
' Genera infine i vari file immagine di formato .png:
  For i = 0 To pc.Max
    pc[i].Save(drc &/ "picture_" & CStr(i) & ".png", 100)
  Next
  
End