Ottenere l'immagine di un Controllo grafico

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca

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 e si salverà 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"
   .W = 60
   .H = 60
   .X = Me.W - (Button1.W * 2)
   .Y = 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