Ottenere l'immagine di un Controllo grafico: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 65: | Riga 65: | ||
.Columns.Count = 5 | .Columns.Count = 5 | ||
End With | End With | ||
For r As Byte = 0 To | For r As Byte = 0 To GridView1.Rows.Max | ||
For c As Byte = 0 To | For c As Byte = 0 To GridView1.Columns.Max | ||
GridView1[r, c].Text = "abcde" | GridView1[r, c].Text = "abcde" | ||
Next | Next | ||
Versione delle 16:27, 8 set 2025
Mediante la Classe Paint
Nel seguente esempio pratico si intende ottenere l'immagine della Label posta sul Form.
Più precisamente mediante le risorse della Classe Paint si otterrà una sorta di imitazione della Label che sarà salvata in un file immagine.
Private Label1 As Label
Private Button1 As Button
Public Sub _new()
With Me
.Center
.W = 700
.H = 600
End With
With Label1 = New Label(Me)
.Move(200, 200, 100, 50)
.Background = Color.Yellow
.Foreground = Color.Red
.Alignment = Align.Right
.Text = "Label gialla"
End With
With Button1 = New Button(Me) As "Button1"
.Move(60, 60, Me.W - (Button1.W * 2), Me.H - (Button1.H * 2))
End With
End
Public Sub Button1_Click()
Dim im As Image
' Si crea la superficie dell'immagine che dovrà contenere la riproduzione grafica della "Label" presente sul "Form":
im = New Image(Label1.W, Label1.H, Color.Transparent, Image.Standard)
With Paint
.Begin(im)
' Sarà ricreata la forma geometrica di dimensioni uguali a quella della "Label":
.FillRect(0, 0, Label1.W, Label1.H, Label1.Background)
' Ora viene impostato il colore del testo della "Label":
.Brush = .Color(Label1.Foreground)
' Viene impostato il testo con le caratteristiche originarie della "Label":
.Text(Label1.Text, 0, 0, Label1.W, Label1.H, Label1.Alignment)
.Fill
.End
End With
im.Save("/tmp/immagine.png", 100)
End
Uso delle risorse del Componente gb.media
Nel seguente codice si otterrà l'immagine di una GridView.
Ovviamente è necessario attivare il Componente gb.media .
Private GridView1 As GridView
Private Button1 As Button
Public Sub Form_Open()
With GridView1 = New GridView(Me)
.Move(0, 0, 300, 100)
.Rows.Count = 5
.Columns.Count = 5
End With
For r As Byte = 0 To GridView1.Rows.Max
For c As Byte = 0 To GridView1.Columns.Max
GridView1[r, c].Text = "abcde"
Next
Next
With Button1 = New Button(Me) As "Button1"
.Move(60, 60, Me.W - (Button1.W * 2), Me.H - (Button1.H * 2))
End With
End
Public Sub Button1_Click()
Dim pl As MediaPipeline
Dim src, vdc, enc, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pl, "ximagesrc")
' Assegna l'ID della "GridView":
src["xid"] = GridView1.Id
vdc = New MediaControl(pl, "videoconvert")
enc = New MediaControl(pl, "pngenc")
snk = New MediaControl(pl, "filesink")
snk["location"] = "/tmp/immagine.png"
src.LinkTo(vdc)
vdc.LinkTo(enc)
enc.LinkTo(snk)
pl.Play()
pl.Stop()
pl.Close()
Print "Cattura immagine effettuata"
End