Differenze tra le versioni di "Ottenere alcune informazioni sul file immagine con le funzioni del API di GTK+3 e GDK-PixBuf"
Da Gambas-it.org - Wikipedia.
Riga 83: | Riga 83: | ||
Print "Mime-Type: "; String@(Pointer@(.mime_types)) <FONT Color=gray>' ''Una descrizione del formato immagine''</font> | Print "Mime-Type: "; String@(Pointer@(.mime_types)) <FONT Color=gray>' ''Una descrizione del formato immagine''</font> | ||
Print "Extension: "; String@(Pointer@(.extensions)) <FONT Color=gray>' ''Un array di MIME-types del formato immagine''</font> | Print "Extension: "; String@(Pointer@(.extensions)) <FONT Color=gray>' ''Un array di MIME-types del formato immagine''</font> | ||
− | Print "Flag: ".flags <FONT Color=gray>' ''Combinazione di flags che specifica ulteriori dettagli sulle operazioni supportate''</font> | + | Print "Flag: "; .flags <FONT Color=gray>' ''Combinazione di flags che specifica ulteriori dettagli sulle operazioni supportate''</font> |
Print "License: "; String@(.license) <FONT Color=gray>' ''Informazione sulla licenza relativa al formato immagine''</font> | Print "License: "; String@(.license) <FONT Color=gray>' ''Informazione sulla licenza relativa al formato immagine''</font> | ||
End With | End With |
Versione delle 18:15, 25 dic 2019
GTK+3 è una libreria per la creazione di interfacce grafiche utente. GDK-PixBuf è una libreria grafica per il caricamento e la manipolazione delle immagini.
Fra molteplici potenzialità esse consentono di ottenere alcune informazioni sui file immagine.
Sarà necessario avere installata nel sistema la libreria: "libgtk-3.so.0.2200.30".
Mostriamo un semplice esempio pratico:
Public Struct GdkPixbufFormat name As Pointer signature As Pointer domain As Pointer description As Pointer mime_types As Pointer extensions As Pointer flags As Integer disabled As Boolean license As Pointer End Struct Library "libgtk-3:0.2200.30" ' 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 ' guchar * gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf) ' Queries a pointer to the pixel data of a pixbuf. Private Extern gdk_pixbuf_get_pixels(GdkPixbuf As Pointer) As Pointer ' int gdk_pixbuf_get_width (const GdkPixbuf *pixbuf) ' Queries the width of a pixbuf. Private Extern gdk_pixbuf_get_width(GdkPixbuf As Pointer) As Integer ' int gdk_pixbuf_get_height (const GdkPixbuf *pixbuf) ' Queries the height of a pixbuf. Private Extern gdk_pixbuf_get_height(GdkPixbuf As Pointer) As Integer ' int gdk_pixbuf_get_n_channels (const GdkPixbuf *pixbuf) ' Queries the number of channels of a pixbuf. Private Extern gdk_pixbuf_get_n_channels(GdkPixbuf As Pointer) As Integer ' gboolean gdk_pixbuf_get_has_alpha (const GdkPixbuf *pixbuf) ' Queries whether a pixbuf has an alpha channel (opacity information). Private Extern gdk_pixbuf_get_has_alpha(GdkPixbuf As Pointer) As Boolean ' GdkPixbufFormat * gdk_pixbuf_get_file_info (const gchar *filename, gint *width, gint *height) ' Parses an image file far enough to determine its format and size. Private Extern gdk_pixbuf_get_file_info(filename As String, width As Pointer, height As Pointer) As Pointer Public Sub Main() Dim nomefile As String = "/percorso/del/file/immagine" Dim w, wi, h, hi As Integer Dim Pixbuf As Pointer Dim c As Byte Dim bo As Boolean Dim PixbufFormat As New GdkPixbufFormat Pixbuf = gdk_pixbuf_new_from_file(nomefile, 0) w = gdk_pixbuf_get_width(Pixbuf) Print "Larghezza: "; Null, w; " pixel" h = gdk_pixbuf_get_height(Pixbuf) Print "Altezza: "; Null, h; " pixel" c = gdk_pixbuf_get_n_channels(Pixbuf) Print "Canali: "; Null, c bo = gdk_pixbuf_get_has_alpha(Pixbuf) Print "Canale Alfa: "; Null, bo ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' PixbufFormat = gdk_pixbuf_get_file_info(nomefile, VarPtr(wi), VarPtr(hi)) Print "\nLarghezza: "; Null, wi; " pixel" Print "Altezza: "; Null, hi; " pixel" With PixbufFormat Print "Name: "; String@(.name) ' Il nome del formato immagine Print "Domain: "; String@(.domain) ' Il contrassegno del modulo Print "Description: "; String@(.description) ' Il dominio del messaggio per la descrizione Print "Mime-Type: "; String@(Pointer@(.mime_types)) ' Una descrizione del formato immagine Print "Extension: "; String@(Pointer@(.extensions)) ' Un array di MIME-types del formato immagine Print "Flag: "; .flags ' Combinazione di flags che specifica ulteriori dettagli sulle operazioni supportate Print "License: "; String@(.license) ' Informazione sulla licenza relativa al formato immagine End With End