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

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
 
E' necessario impostare innanzitutto una superficie grafica già fornita dal Componente ''gb.cairo'', ad esempio quella per generare file SVG (''CairoSvgSurface''), sulla quale disegnare. Se si intende creare un file di tipo ''SVG'' si imposterà come primo parametro anche il percorso ove il nuovo file SVG verrà salvato. 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 SVG (''CairoSvgSurface''), sulla quale disegnare. Se si intende creare un file di tipo ''SVG'' si imposterà come primo parametro anche il percorso ove il nuovo file SVG verrà salvato. Si potrà quindi iniziare il disegno con la Classe ''Cairo''.
  
Mostriamo di seguito un semplice esempio per disegnare e generare un file '''SVG'''. 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 '''SVG'''.
 
+
<BR>Al termine verrà posto il Metodo ".Finish()" della Classe ''CairoSvgSurface'', per generare il file immagine SVG.
Al termine verrà posto il Metodo ".Finish()" della Classe ''CairoSvgSurface'', per generare il file immagine SVG.
+
  Public Sub Button1_Click()
  ''' Public''' Sub Main()
 
 
   
 
   
 
   Dim svg As CairoSvgSurface
 
   Dim svg 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.''
   svg = New CairoSvgSurface("<FONT Color=gray><B>''/percorso/del/file.svg/da/creare''</b></font>", 210, 297)
+
' ''Per la creazione di un file immagine di formato SVG, va passato al 1° argomento il percorso ove il file immagine sarà salvato.
 +
' ''(il 2° e il 3° argomento sono espressi in millimetri).''</font>
 +
   svg = New CairoSvgSurface("<FONT Color=darkgreen><B>''/percorso/del/file/SVG/da/creare''</b></font>", 210, 297)
 
   
 
   
 
   With Cairo
 
   With Cairo
Riga 21: Riga 22:
 
     .LineWidth = 10.0
 
     .LineWidth = 10.0
 
     .Arc(300, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
 
     .Arc(300, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
     .Source = Cairo.ColorPattern(Color.Blue)    <FONT Color=gray>' ''Imposta il colore dell'elemento del disegno''</font>
+
     .Source = .ColorPattern(Color.Blue)    <FONT Color=gray>' ''Imposta il colore dell'elemento del disegno''</font>
 
     .Stroke
 
     .Stroke
 
  <FONT Color=gray>' ''Disegna un arco colorato pieno:''</font>
 
  <FONT Color=gray>' ''Disegna un arco colorato pieno:''</font>
 
     .LineWidth = 10.0
 
     .LineWidth = 10.0
 
     .ArcNegative(400, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
 
     .ArcNegative(400, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0))
     .Source = Cairo.ColorPattern(Color.Orange)
+
     .Source = .ColorPattern(Color.Orange)
 
     .Fill   
 
     .Fill   
 
  <FONT Color=gray>' ''Scrive il testo:''</font>
 
  <FONT Color=gray>' ''Scrive il testo:''</font>
Riga 35: Riga 36:
 
     .DrawText("Drawtext")
 
     .DrawText("Drawtext")
 
     .Fill
 
     .Fill
     .Source = Cairo.ColorPattern(Color.Green)
+
     .Source = .ColorPattern(Color.Green)
 
     .MoveTo(400, 300)
 
     .MoveTo(400, 300)
 
     .Text("Text")
 
     .Text("Text")
Riga 47: Riga 48:
 
     .Source = .ColorPattern(Color.Violet)
 
     .Source = .ColorPattern(Color.Violet)
 
     .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 SVG:''</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>")
+
     .Source = .ImagePattern(im, 350, 600)
     .Scale(1, 1)    <FONT Color=gray>' ''Non imposta alcuna modifica scalare all'immagine''</font>
+
    .Paint          <FONT Color=gray>' ''Imposta l'immagine sulla superficie SVG''</font>
     .Source = Cairo.ImagePattern(im, 350, 600)
+
     im2 = Image.Load("<FONT Color=darkgreen>''/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg''</font>")
 +
     .Source = .ImagePattern(im2, 60, 400)
 
     .Paint          <FONT Color=gray>' ''Imposta l'immagine sulla superficie SVG''</font>
 
     .Paint          <FONT Color=gray>' ''Imposta l'immagine sulla superficie SVG''</font>
    .Scale(0.5, 0.5) <FONT Color=gray>' ''Riduce della metà la dimensione della seconda immagine da disegnare sulla superficie PDF''</font>
 
    .Source = Cairo.ImagePattern(im2, 400, 200)
 
    .Paint
 
 
  <FONT Color=gray>' ''Termina il disegno:''</font>
 
  <FONT Color=gray>' ''Termina il disegno:''</font>
 
     .End
 
     .End
 
   End With
 
   End With
 
   
 
   
 +
<FONT Color=gray>' ''Per generare il file di formato SVG, va utilizzato il Metodo ".Finish()":''</font>
 
   svg.Finish
 
   svg.Finish
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 19:20, 6 dic 2023

Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file SVG 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 SVG (CairoSvgSurface), sulla quale disegnare. Se si intende creare un file di tipo SVG si imposterà come primo parametro anche il percorso ove il nuovo file SVG verrà salvato. Si potrà quindi iniziare il disegno con la Classe Cairo.

Mostriamo di seguito un semplice esempio per disegnare e generare un file SVG.
Al termine verrà posto il Metodo ".Finish()" della Classe CairoSvgSurface, per generare il file immagine SVG.

Public Sub Button1_Click()

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

' Specifica la superficie grafica da creare per disegnarvi sopra.
' Per la creazione di un file immagine di formato SVG, va passato al 1° argomento il percorso ove il file immagine sarà salvato.
' (il 2° e il 3° argomento sono espressi in millimetri).
 svg = New CairoSvgSurface("/percorso/del/file/SVG/da/creare", 210, 297)

 With Cairo
' Inizia il disegno sulla superficie impostata:
   .Begin(svg)
' 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)
   .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 SVG:
   im = Image.Load("/usr/share/icons/breeze-dark/devices/64/battery.svg")
   .Source = .ImagePattern(im, 350, 600)
   .Paint           ' Imposta l'immagine sulla superficie SVG
   im2 = Image.Load("/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg")
   .Source = .ImagePattern(im2, 60, 400)
   .Paint           ' Imposta l'immagine sulla superficie SVG
' Termina il disegno:
   .End
 End With

' Per generare il file di formato SVG, va utilizzato il Metodo ".Finish()":
 svg.Finish
 
End