Generare un file immagine da una DrawingArea

Da Gambas-it.org - Wikipedia.

Per generare un file immagine da una DrawingArea, si può attuare la seguente procedura:

  • disegno e/o scrivo nella DrawingArea;
  • creo il file PDF mediante la proprietà .OutputFile della Classe Printer;
  • utilizzando il file PDF, converto la pagina PDF in una Image (è necessario attivare il componente gb.pdf);
  • quindi salvo detta Image con il suo metodo .Save in un file immagine.


Mostriamo di seguito un esempio:

Public Sub DrawingArea1_Draw()
 
  With Paint
    .Brush = Paint.Color(Color.Red)
    .MoveTo(200, 200)
    .RelLineTo(0, 100)
    .Stroke
    .DrawText("Testo con DrawText", 10, 10, 20, 20)
    .End
  End With
    
End


Public Sub Button1_Click()

  With Printer1
    .Configure
    .Orientation = 0
    .Paper = 2
    .Resolution = Desktop.Resolution
' Stampa/crea un file .pdf:
    .OutputFile = "/tmp/mio_file.pdf"
    .Print
  End With

End


Public Sub Printer1_Draw()

  DrawingArea1_Draw()

End


Public Sub Button2_Click()

 Dim pdf As New PdfDocument
 Dim i As New Image

  
  With pdf
    .Open("/tmp/mio_file.pdf")
' Se il file pdf è stato caricato correttamente...
    If .Ready = True Then
' ...allora convertiamo la prima pagina ("indice" delle pagine = 1) in una "Image":
      i = pdf[1].Image

' Infine salviamo l'Image in un file immagine
' (è necessario scegliere il tipo di file immagine fra quelli supportati):
      i.Save("/tmp/mio_file.xxx")

    Else
      Message.Error("<FONT color=darkred>Errore nel caricamento del file PDF !")
   
    Endif

  End With

End