Differenze tra le versioni di "Catturare singole immagini da una ripresa video di una webcam mediante il Controllo MediaView del Componente gb.media.form"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per catturare singole immagini da una ripresa video di una webcam mediante il Controllo ''MediaView'' del Componente gb.media.form, si possono usare alcune modalità. ==Uso d...")
 
Riga 35: Riga 35:
 
   snk["location"] = temporaneo
 
   snk["location"] = temporaneo
 
    
 
    
  <FONT Color=gray<' ''Collega fra loro i plugin di "GStreamer":''</font>
+
  <FONT Color=gray>' ''Collega fra loro i plugin di "GStreamer":''</font>
 
   xis.LinkTo(con)
 
   xis.LinkTo(con)
 
   con.LinkTo(enc)
 
   con.LinkTo(enc)
 
   enc.LinkTo(snk)
 
   enc.LinkTo(snk)
 
   
 
   
  <FONT Color=gray<' ''Effettua la cattura di quanto mostrato dalla "DrawingArea" costitutiva del Controllo "MediaView":''</font>
+
  <FONT Color=gray>' ''Effettua la cattura di quanto mostrato dalla "DrawingArea" costitutiva del Controllo "MediaView":''</font>
 
   pl.Play()
 
   pl.Play()
 
   
 
   
Riga 47: Riga 47:
 
   Until Stat(temporaneo).Size > 0
 
   Until Stat(temporaneo).Size > 0
 
   
 
   
  <FONT Color=gray<' ''Salva il file immagine di formato "png" nella cartella "/tmp":''</font>
+
  <FONT Color=gray>' ''Salva il file immagine di formato "png" nella cartella "/tmp":''</font>
 
   Copy temporaneo To "/tmp" &/ Format(Now, "dd_mm_yyyy-hh_nn_ss") & ".png"
 
   Copy temporaneo To "/tmp" &/ Format(Now, "dd_mm_yyyy-hh_nn_ss") & ".png"
 
   
 
   

Versione delle 18:13, 23 dic 2023

Per catturare singole immagini da una ripresa video di una webcam mediante il Controllo MediaView del Componente gb.media.form, si possono usare alcune modalità.

Uso delle Classi MediaPipeline e MediaControl del Componente gb.media

Mostriamo un esempio pratico:

Public Sub Form_Open()

 MediaView1.URL = "v4l2:///dev/video0"
 MediaView1.Play()

End


Public Sub Button1_Click()

 Dim pl As MediaPipeline
 Dim xis, con, enc, snk As MediaControl
 Dim temporaneo As String
 Dim ob1, ob2, ob3 As Object
 Dim DrawingArea1 As DrawingArea

 ob1 = MediaView1.Children[0]
 ob2 = ob1.Children[0]
 ob3 = ob2.Children[0]
 DrawingArea1 = ob3.Children[0]

 temporaneo = Temp

 pl = New MediaPipeline 

 xis = New MediaControl(pl, "ximagesrc")
 xis["xid"] = DrawingArea1.Id
 con = New MediaControl(pl, "videoconvert")
 enc = New MediaControl(pl, "pngenc")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = temporaneo
 
' Collega fra loro i plugin di "GStreamer":
 xis.LinkTo(con)
 con.LinkTo(enc)
 enc.LinkTo(snk)

' Effettua la cattura di quanto mostrato dalla "DrawingArea" costitutiva del Controllo "MediaView":
 pl.Play()

 Repeat 
   Wait 0.01
 Until Stat(temporaneo).Size > 0

' Salva il file immagine di formato "png" nella cartella "/tmp":
 Copy temporaneo To "/tmp" &/ Format(Now, "dd_mm_yyyy-hh_nn_ss") & ".png"

 pl.Stop
 pl.Close

End