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:23 di Vuott (Discussione | contributi)
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à. [nota 1]
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
Note
[1] Vedere anche queste pagine: