Creare file PNG con le risorse del Componente gb.cairo
Da Gambas-it.org - Wikipedia.
Versione del 6 dic 2023 alle 19:09 di Vuott (Discussione | contributi)
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