Ottenere un'immagine del Form

Da Gambas-it.org - Wikipedia.
Versione del 7 mar 2018 alle 14:18 di Vuott (Discussione | contributi) (Creata pagina con "Per ottenere un'immagine del ''Form'', comprensivo di ogni Oggetto grafico ''figlio'' in esso contenuto, è possibile adottare almeno due modalità. ==Uso del Metodo ''.Scre...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per ottenere un'immagine del Form, comprensivo di ogni Oggetto grafico figlio in esso contenuto, è possibile adottare almeno due modalità.


Uso del Metodo .Screeshot( ) della Classe Desktop

La prima modalità prevede l'uso del Metodo .Screeshot( ) della Classe Desktop. Pertanto è necessario attivare anche i Componenti "gb.desktop" e "gb.desktop.x11" di Gambas.

Con il Metodo .Screeshot( ) si otterrà una Picture dell'Oggetto (il Form in tal caso) posto a una distanza x, y del medesimo dall'angolo alto sinistro dello schermo.

Nell'esempio pratico che segue, porremo sul Form un TextBox, una PictureBox, per far mostrare un qualsiasi file immagine, e un Button. Si provvederà a effettuare la schermata del Form, pochissimo tempo dopo che questo si sarà attivato.

Public Sub Form_Open()
 
 TextBox1.Text = "Gambas"
 PictureBox1.Picture = Picture.Load("' /percorso/del/file/immagine.png")
 Button1.Foreground = Color.Red
 Button1.Text = "Gambas"
  
End


Public Sub Form_Activate()
 
 Dim pc As Picture
  
' Resta in attesa un po' per consentire che il Form si apra completamente mostrando anche gli Oggetti "figli" da esso contenuti:
  Sleep 0.5
  
' Effettua la schermata del Form, generando un Oggetto di tipo "Picture":
  pc = Desktop.Screenshot(Me.ScreenX, Me.ScreenY, Me.W, Me.H)
  
' Salva la schermata in un file immagine di tipo "png":
  pc.Save("/tmp/test.png", 100)
  
End


Uso del Metodo .GetScreeshot( ) della Classe DesktopWindow

La seconda malità prevede l'uso del Metodo .GetScreeshot( ) della Classe DesktopWindow. Pertanto è necessario attivare anche i Componenti "gb.desktop" e "gb.desktop.x11" di Gambas.

Con il Metodo .GetScreeshot( ) si otterrà una Picture dell'Oggetto (il Form in tal caso) posto a una distanza x, y del medesimo dall'angolo alto sinistro dello schermo.

Nell'esempio pratico che segue, porremo sul Form un TextBox, una PictureBox, per far mostrare un qualsiasi file immagine, e un Button. Anche in questo caso si provvederà a effettuare la schermata del Form, pochissimo tempo dopo che questo si sarà attivato.

Public Sub Form_Open()
 
 TextBox1.Text = "Gambas"
 PictureBox1.Picture = Picture.Load("' /percorso/del/file/immagine.png")
 Button1.Foreground = Color.Red
 Button1.Text = "Gambas"
  
End


Public Sub Form_Activate()
 
 Dim dw As DesktopWindow
 Dim pc As Picture
  
' Resta in attesa un po' per consentire che il Form si apra completamente mostrando anche gli Oggetti "figli" da esso contenuti:
  Sleep 0.5
  
' Genera una variabile di tipo "DesktopWindow" che punta al Form, avendo individuato il numero identificativo della finestra del Form medesimo:
  With dw = New DesktopWindow(Me.Id)
' Effettua la schermata del Form, generando un Oggetto di tipo "Picture":
    pc = .GetScreenshot(True)
  End With
  
' Salva la schermata in un file immagine di tipo "png":
  pc.Save("/tmp/test.png", 100)
  
End