Caricare un file di formato TIFF e da questo creare un file immagine di altro formato con l'API di GDK PixBuf

Da Gambas-it.org - Wikipedia.

La libreria GDK-PixBuf consente il caricamento delle immagini e la manipolazione del buffer dei pixel.

Per poter fruire in Gambas delle risorse di questa libreria è necessario installare e richiamare la libreria condivisa e dinamica: "libgdk_pixbuf-2.0.so.0.3000.7"


La libreria GDK-PixBuf consente anche di caricare un file immagine di formato TIFF, e da questo generare un file immagine di altro formato.

Mostriamo un semplice esempio:

Library "libgdk_pixbuf-2.0:0.3000.7"

' GdkPixbuf * gdk_pixbuf_new_from_file (const char *filename, GError **error)
' Creates a new pixbuf by loading an image from a file.
Private Extern gdk_pixbuf_new_from_file(filename As String, GError As Pointer) As Pointer
 
' gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, const char *filename, const char *type, GError **error, ...)
' Saves pixbuf to a file in format type. By default, "jpeg", "png", "ico" and "bmp" are possible file formats to save in.
Private Extern gdk_pixbuf_save(GdkPixbuf As Pointer, filename As String, type As String, GErr As Pointer, altro As String) As Boolean


Public Sub Main()

 Dim pixbuf, err As Pointer
 Dim imm As String = "/percorso/del/file/immagine.tif"
 
' Carichiamo in memoria il file di formato TIFF:
  pixbuf = gdk_pixbuf_new_from_file(imm, VarPtr(err))
  If err <> 0 Then Error.Raise("Impossibile caricare il file immagine !")
   
' In questo esempio salveremo l'immagine in un file di formato .png:
  gdk_pixbuf_save(pixbuf, "/tmp/file.png", "png", VarPtr(err), Null)
  If err <> 0 Then Error.Raise("Impossibile salvare il file immagine !")
       
End



Riferimenti