Differenze tra le versioni di "Creare file PNG con le risorse del Componente gb.cairo"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file PNG disegnandovi figure, testo, immagini ed in generale ogni altro elemento di disegno. E' necessario i...")
 
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file PNG disegnandovi figure, testo, immagini ed in generale ogni altro elemento di disegno.
 
Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file PNG disegnandovi figure, testo, immagini ed in generale ogni altro elemento di disegno.
  
E' necessario impostare innanzitutto una superficie grafica già fornita dal Componente ''gb.cairo'', ad esempio quella per generare file PNG (''CairoSvgSurface''), sulla quale disegnare. Se si intende creare un file di tipo ''PNG'', allora il primo parametro potrà essere impostato a Null. Si potrà quindi iniziare il disegno con la Classe ''Cairo''.
+
E' necessario impostare innanzitutto una superficie grafica già fornita dal Componente ''gb.cairo'', ad esempio quella per generare file PNG (''CairoSvgSurface''), sulla quale disegnare. Se si intende creare un file di tipo ''PNG'', allora il primo parametro dovrà essere impostato a Null. Si potrà quindi iniziare il disegno con la Classe ''Cairo''.
  
Mostriamo di seguito un semplice esempio per disegnare e generare un file '''PNG'''. Poiché l'esempio prevede anche l'inserimento di due file immagine, si dovranno anche attivare i componenti ''gb.image'' e ''gb.image.io'' .
+
Mostriamo di seguito un semplice esempio per disegnare e generare un file '''PNG'''.
 
+
<BR>Al termine verrà posto il Metodo ".Save()" della Classe ''CairoSvgSurface'', impostando come parametro il percorso ove verrà salvato il file PNG che si intende creare.
Al termine verrà posto il Metodo ".Save()" della Classe ''CairoSvgSurface'', impostando come parametro il percorso ove verrà salvato il file PNG che si intende creare.
+
  Public Sub Button1_Click()
  ''' Public''' Sub Main()
 
 
   
 
   
 
   Dim png As CairoSvgSurface
 
   Dim png As CairoSvgSurface
Riga 12: Riga 11:
 
   Dim im, im2 As Image
 
   Dim im, im2 As Image
 
   
 
   
  <FONT Color=gray>' ''Specifica la superficie grafica da creare per disegnarvi sopra:''</font>
+
  <FONT Color=gray>' ''Specifica la superficie grafica da creare per disegnarvi sopra''
 +
' ''(il 2° e il 3° argomento sono espressi in millimetri).''</font>
 
   png = New CairoSvgSurface(<FONT Color=#B22222>Null</font>, 210, 297)
 
   png = New CairoSvgSurface(<FONT Color=#B22222>Null</font>, 210, 297)
 
   
 
   
Riga 18: Riga 18:
 
  <FONT Color=gray>' ''Inizia il disegno sulla superficie impostata:''</font>
 
  <FONT Color=gray>' ''Inizia il disegno sulla superficie impostata:''</font>
 
     .Begin(png)
 
     .Begin(png)
 +
<FONT Color=gray>' ''Imposta il colore del fondo dell'immagine:''</font>
 +
    .Source = .ColorPattern(Color.Yellow)
 +
    .Paint
 
  <FONT Color=gray>' ''Disegna un arco:''</font>
 
  <FONT Color=gray>' ''Disegna un arco:''</font>
 
     .LineWidth = 10.0
 
     .LineWidth = 10.0
Riga 37: Riga 40:
 
     .Source = .ColorPattern(Color.Green)
 
     .Source = .ColorPattern(Color.Green)
 
     .MoveTo(400, 300)
 
     .MoveTo(400, 300)
 +
    .Font.Bold = True
 
     .Text("Text")
 
     .Text("Text")
 
     .Fill
 
     .Fill
Riga 48: Riga 52:
 
   .Fill   
 
   .Fill   
 
  <FONT Color=gray>' ''Vengono inserite due immagini caricate da due file PNG:''</font>
 
  <FONT Color=gray>' ''Vengono inserite due immagini caricate da due file PNG:''</font>
   im = Image.Load("<FONT Color=gray><B>''/percorso/del/primo/file.png''</b></font>")
+
   im = Image.Load("<FONT Color=darkgreen>''/usr/share/icons/breeze-dark/devices/64/battery.svg''</font>")
   im2 = Image.Load("<FONT Color=gray><B>''/percorso/del/secondo/file.png''</b></font>")  
+
   im2 = Image.Load("<FONT Color=darkgreen>''/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg''</font>")
  .Scale(1, 1)      <FONT Color=gray>' ''Non imposta alcuna modifica scalare all'immagine''</font>
 
 
   .Source = Cairo.ImagePattern(im, 350, 600)
 
   .Source = Cairo.ImagePattern(im, 350, 600)
 
   .Paint            <FONT Color=gray>' ''Imposta l'immagine sulla superficie PNG''</font>
 
   .Paint            <FONT Color=gray>' ''Imposta l'immagine sulla superficie PNG''</font>
   .Scale(0.5, 0.5)  <FONT Color=gray>' ''Riduce della metà la dimensione della seconda immagine da disegnare sulla superficie PDF''</font>
+
   .Source = .ImagePattern(im2, 60, 400)
  .Source = .ImagePattern(im2, 400, 200)
+
  .Paint            <FONT Color=gray>' ''Imposta l'immagine sulla superficie PNG''</font>
  .Paint
 
 
  <FONT Color=gray>' ''Termina il disegno:''</font>
 
  <FONT Color=gray>' ''Termina il disegno:''</font>
 
   .End
 
   .End
 
   End With
 
   End With
 
   
 
   
   png.Save("<FONT Color=gray>''/percorso/del/file.png''</font>")
+
   png.Save("<FONT Color=darkgreen>''/percorso/del/file.png''</font>")
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 19:09, 6 dic 2023

Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file PNG disegnandovi figure, testo, immagini ed in generale ogni altro elemento di disegno.

E' necessario impostare innanzitutto una superficie grafica già fornita dal Componente gb.cairo, ad esempio quella per generare file PNG (CairoSvgSurface), sulla quale disegnare. Se si intende creare un file di tipo PNG, allora il primo parametro dovrà essere impostato a Null. Si potrà quindi iniziare il disegno con la Classe Cairo.

Mostriamo di seguito un semplice esempio per disegnare e generare un file PNG.
Al termine verrà posto il Metodo ".Save()" della Classe CairoSvgSurface, impostando come parametro il percorso ove verrà salvato il file PNG che si intende creare.

Public Sub Button1_Click()

 Dim png As CairoSvgSurface
 Dim x, y As Integer
 Dim im, im2 As Image

' Specifica la superficie grafica da creare per disegnarvi sopra
' (il 2° e il 3° argomento sono espressi in millimetri).
 png = New CairoSvgSurface(Null, 210, 297)

 With Cairo
' Inizia il disegno sulla superficie impostata:
   .Begin(png)
' Imposta il colore del fondo dell'immagine:
   .Source = .ColorPattern(Color.Yellow)
   .Paint
' Disegna un arco:
   .LineWidth = 10.0
   .Arc(300, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
   .Source = .ColorPattern(Color.Blue)    ' Imposta il colore dell'elemento del disegno
   .Stroke   
' Disegna un arco colorato pieno:
   .LineWidth = 10.0
   .ArcNegative(400, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
   .Source = .ColorPattern(Color.Orange)
   .Fill
' Scrive il testo:
   .Font.Size = 20
   .Font.Name = "URW Palladio L"
   .Source = .ColorPattern(Color.Red)
   .MoveTo(100, 200)
   .DrawText("Drawtext")
   .Fill
   .Source = .ColorPattern(Color.Green)
   .MoveTo(400, 300)
   .Font.Bold = True
   .Text("Text")
   .Fill
' Disegna 10x10 quadrati pieni:
   For x = 0 To 9
     For y = 0 To 9
       .Rectangle(200 + x * 10.0, 500 + y * 10.0, 5, 5)
     Next
   Next
  .Source = .ColorPattern(Color.Violet)
  .Fill   
' Vengono inserite due immagini caricate da due file PNG:
  im = Image.Load("/usr/share/icons/breeze-dark/devices/64/battery.svg")
  im2 = Image.Load("/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg")
  .Source = Cairo.ImagePattern(im, 350, 600)
  .Paint            ' Imposta l'immagine sulla superficie PNG
  .Source = .ImagePattern(im2, 60, 400)
  .Paint            ' Imposta l'immagine sulla superficie PNG
' Termina il disegno:
  .End
 End With

 png.Save("/percorso/del/file.png")

End