Catturare l'immagine di una GridView con il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 13 mag 2023 alle 09:54 di Vuott (Discussione | contributi)
Per catturare l'immagine di una GridView con il Componente gb.media, è possibile usare il seguente codice: [nota 1]
Public Sub Form_Open() Dim r, c As Byte With GridView1 .Rows.Count = 5 .Columns.Count = 5 End With For r = 0 To 4 For c = 0 To 4 GridView1[r, c].Text = "abcde" Next Next End Public Sub Button1_Click() Dim pl As MediaPipeline Dim src, enc, snk As MediaControl Dim appoggio As String appoggio = Temp pl = New MediaPipeline src = New MediaControl(pl, "ximagesrc") ' Assegna alla proprietà "xid" del plugin "ximagesrc" il numero idetificativo della "GridView", affinché ne catturi quanto da essa visualizzato: src["xid"] = GridView1.Id enc = New MediaControl(pl, "jpegenc") snk = New MediaControl(pl, "filesink") snk["location"] = appoggio ' Collega fra loro i plugin di "GStreamer": src.LinkTo(enc) enc.LinkTo(snk) ' Effettua la ripresa dell'immagine della GridView: pl.Play() ' Può essere necessario porre una breve pausa per consentire la cattura dell'immagine: Wait 1 ' L'immagine della GridView è salvata in un file di formato JPG: Copy appoggio To "/tmp/immagine.jpg" pl.Stop() pl.Close() Print "Cattura immagine effettuata" End
In quest'altro esempio l'immagine della GridView sarà salvata in un file di formato PNG:
Public Sub Form_Open() Dim r, c As Byte With GridView1 .Rows.Count = 5 .Columns.Count = 5 End With For r = 0 To 4 For c = 0 To 4 GridView1[r, c].Text = "abcde" Next Next End Public Sub Button1_Click() Dim pl As MediaPipeline Dim src, vdc, enc, snk As MediaControl Dim appoggio As String appoggio = Temp pl = New MediaPipeline src = New MediaControl(pl, "ximagesrc") src["xid"] = GridView1.Id vdc = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "pngenc") snk = New MediaControl(pl, "filesink") snk["location"] = appoggio src.LinkTo(vdc) vdc.LinkTo(enc) enc.LinkTo(snk) pl.Play() Repeat Wait 0.01 Until Right(File.Load(appoggio), SizeOf(gb.Integer)) = MkInt(&826042AE) ' L'immagine della GridView è salvata in un file di formato PNG: Copy appoggio To "/tmp/immagine.png" pl.Stop() pl.Close() Print "Cattura immagine effettuata" End
Note
[1] Vedere anche le seguenti pagine: