Catturare singole immagini da una ripresa video di una webcam mediante il Controllo MediaView del Componente gb.media.form

Da Gambas-it.org - Wikipedia.
Versione del 23 dic 2023 alle 18:12 di Vuott (Discussione | contributi) (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...")

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

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
 
<FONT Color=gray<' Collega fra loro i plugin di "GStreamer":</font>
 xis.LinkTo(con)
 con.LinkTo(enc)
 enc.LinkTo(snk)

<FONT Color=gray<' Effettua la cattura di quanto mostrato dalla "DrawingArea" costitutiva del Controllo "MediaView":</font>
 pl.Play()

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

<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"

 pl.Stop
 pl.Close

End