Differenze tra le versioni di "Catturare l'immagine di una GridView con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per catturare l'immagine di una GridView con il Componente gb.media, è possibile usare il seguente codice: Public Sub Form_Open() Dim r, c As Byte With GridView1...") |
|||
Riga 1: | Riga 1: | ||
− | Per catturare l'immagine di una GridView con il Componente gb.media, è possibile usare il seguente codice: | + | Per catturare l'immagine di una GridView con il Componente gb.media, è possibile usare il seguente codice: <SUP>[[[#Note|nota 1]]]</sup> |
Public Sub Form_Open() | Public Sub Form_Open() | ||
Riga 44: | Riga 44: | ||
Wait 1 | Wait 1 | ||
+ | <FONT Color=gray>' ''L'immagine della ''GridView'' è salvata in un file di formato JPG:''</font> | ||
Copy appoggio To "/tmp/immagine.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) | ||
+ | |||
+ | <FONT Color=gray>' ''L'immagine della ''GridView'' è salvata in un file di formato PNG:''</font> | ||
+ | Copy appoggio To "/tmp/immagine.png" | ||
pl.Stop() | pl.Stop() | ||
Riga 55: | Riga 109: | ||
=Note= | =Note= | ||
− | [1] Vedere anche | + | [1] Vedere anche le seguenti pagine: |
+ | * [[Ottenere_una_schermata_("screenshot")_con_Gambas#Uso_delle_risorse_del_Componente_gb.media|Ottenere una schermata ("screenshot") con l'uso delle risorse del Componente gb.media]] | ||
+ | * [[Convertire i formati immagine mediante il Componente gb.media]] |
Versione attuale delle 10:54, 13 mag 2023
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: