Differenze tra le versioni di "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.
Riga 15: | Riga 15: | ||
' ''Saves pixbuf to a file in format type. By default, "jpeg", "png", "ico" and "bmp" are possible file formats to save in.''</font> | ' ''Saves pixbuf to a file in format type. By default, "jpeg", "png", "ico" and "bmp" are possible file formats to save in.''</font> | ||
Private Extern gdk_pixbuf_save(GdkPixbuf As Pointer, filename As String, type As String, GErr As Pointer, altro As String) As Boolean | Private Extern gdk_pixbuf_save(GdkPixbuf As Pointer, filename As String, type As String, GErr As Pointer, altro As String) As Boolean | ||
+ | |||
+ | <FONT Color=gray>' ''void g_object_unref (gpointer object)'' | ||
+ | ' ''Decreases the reference count of object.''</font> | ||
+ | Private Extern g_object_unref(gobject As Pointer) | ||
Riga 21: | Riga 25: | ||
Dim pixbuf, err As Pointer | Dim pixbuf, err As Pointer | ||
Dim imm As String = "<FONT Color=gray>''/percorso/del/file/immagine.tif''</font>" | Dim imm As String = "<FONT Color=gray>''/percorso/del/file/immagine.tif''</font>" | ||
− | + | ||
<FONT Color=gray>' ''Carichiamo in memoria il file di formato TIFF:''</font> | <FONT Color=gray>' ''Carichiamo in memoria il file di formato TIFF:''</font> | ||
pixbuf = gdk_pixbuf_new_from_file(imm, VarPtr(err)) | pixbuf = gdk_pixbuf_new_from_file(imm, VarPtr(err)) | ||
If Val(String@(err)) <> 0 Then Error.Raise("Impossibile caricare il file immagine !") | If Val(String@(err)) <> 0 Then Error.Raise("Impossibile caricare il file immagine !") | ||
− | + | ||
<FONT Color=gray>' ''In questo esempio salveremo l'immagine in un file di formato .png:''</font> | <FONT Color=gray>' ''In questo esempio salveremo l'immagine in un file di formato .png:''</font> | ||
gdk_pixbuf_save(pixbuf, "''/tmp/file.png''", "png", VarPtr(err), Null) | gdk_pixbuf_save(pixbuf, "''/tmp/file.png''", "png", VarPtr(err), Null) | ||
If Val(String@(err)) <> 0 Then Error.Raise("Impossibile salvare il file immagine !") | If Val(String@(err)) <> 0 Then Error.Raise("Impossibile salvare il file immagine !") | ||
− | + | ||
+ | g_object_unref(pixbuf) | ||
+ | |||
'''End''' | '''End''' | ||
Versione delle 16:43, 26 dic 2021
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: "libgdk_pixbuf-2.0.so.0.4000.0 ".
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.4000.0" ' 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 ' void g_object_unref (gpointer object) ' Decreases the reference count of object. Private Extern g_object_unref(gobject As Pointer) 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 Val(String@(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 Val(String@(err)) <> 0 Then Error.Raise("Impossibile salvare il file immagine !") g_object_unref(pixbuf) End