Differenze tra le versioni di "Sapere quanti pixel occupa un testo in un'immagine mediante le funzioni del API di Imlib2"
Da Gambas-it.org - Wikipedia.
(6 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
La libreria ''Imlib2'' consente di gestire, elaborare e salvare file immagini. | La libreria ''Imlib2'' consente di gestire, elaborare e salvare file immagini. | ||
− | Con alcune sue risorse è possibile conoscere la quantità di pixel che | + | Con alcune sue risorse è possibile conoscere la quantità di pixel che verrebbero occupati da un testo in lunghezza ed in altezza eventualmente inserito in un'immagine. |
− | |||
− | |||
+ | E' necessario richiamare la libreria: "''libImlib2.so.1.12.2'' ". | ||
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
− | Library "libImlib2:1. | + | Library "libImlib2:1.12.2" |
<FONT Color=gray>' ''Imlib_Font imlib_load_font(const char * font_name)'' | <FONT Color=gray>' ''Imlib_Font imlib_load_font(const char * font_name)'' | ||
Riga 22: | Riga 21: | ||
− | + | Public Sub Main() | |
Dim fnt As Pointer | Dim fnt As Pointer | ||
Dim w, h As Integer | Dim w, h As Integer | ||
− | <FONT Color=gray>' '' | + | <FONT Color=gray>' ''Imposta il percorso completo del font di tipo TTF e della dimensione da utilizzare con il testo.'' |
' ''Il parametro è una stringa così impostata "percorso_del_font/dimensione_del_carattere".'' | ' ''Il parametro è una stringa così impostata "percorso_del_font/dimensione_del_carattere".'' | ||
− | ' ''Qui facciamo un esempio concreto con il font " | + | ' ''Qui facciamo un esempio concreto con il font "FreeSans.ttf", ed impostando la dimensione del carattere a "14".'' |
− | + | ' ''(In altre distribuzioni la cartella, contenente i file truetype font potrebbe chiamarsi diversamente, e il font "FreeSans.ttf" potrebbe non essere lì presente''.)</font> | |
− | + | fnt = imlib_load_font("/usr/share/fonts/truetype/freefont/FreeSans.ttf/14") | |
+ | If fnt == 0 Then Error.Raise("Errore nel caricamento del font !") | ||
− | + | imlib_context_set_font(fnt) | |
<FONT Color=gray>' ''Imposta il testo che sarebbe scritto nell'immagine, e ricava la quantità di pixel il lunghezza ed in altezza che sarebbero occupati:''</font> | <FONT Color=gray>' ''Imposta il testo che sarebbe scritto nell'immagine, e ricava la quantità di pixel il lunghezza ed in altezza che sarebbero occupati:''</font> | ||
− | + | imlib_get_text_size("Testo qualsiasi", VarPtr(w), VarPtr(h)) | |
− | + | Print "Lunghezza: "; w; " pixel" | |
− | + | Print "Altezza: "; h; " pixel" | |
− | + | End | |
− | |||
=Riferimenti= | =Riferimenti= | ||
− | * | + | * https://docs.enlightenment.org/api/imlib2/html/ |
Versione attuale delle 16:17, 25 giu 2024
La libreria Imlib2 consente di gestire, elaborare e salvare file immagini.
Con alcune sue risorse è possibile conoscere la quantità di pixel che verrebbero occupati da un testo in lunghezza ed in altezza eventualmente inserito in un'immagine.
E' necessario richiamare la libreria: "libImlib2.so.1.12.2 ".
Mostriamo un semplice esempio:
Library "libImlib2:1.12.2" ' Imlib_Font imlib_load_font(const char * font_name) ' Loads a truetype font from the first directory in the font path that contains that font. Private Extern imlib_load_font(font_name As String) As Pointer ' void imlib_context_set_font(Imlib_Font font) ' Sets the current font to use when rendering text. Private Extern imlib_context_set_font(font As Pointer) ' void imlib_get_text_size (const char * text, int * width_return, int * height_return) ' Gets the width and height in pixels the text string would use up if drawn with the current font. Private Extern imlib_get_text_size(text As String, width_return As Pointer, height_return As Pointer) Public Sub Main() Dim fnt As Pointer Dim w, h As Integer ' Imposta il percorso completo del font di tipo TTF e della dimensione da utilizzare con il testo. ' Il parametro è una stringa così impostata "percorso_del_font/dimensione_del_carattere". ' Qui facciamo un esempio concreto con il font "FreeSans.ttf", ed impostando la dimensione del carattere a "14". ' (In altre distribuzioni la cartella, contenente i file truetype font potrebbe chiamarsi diversamente, e il font "FreeSans.ttf" potrebbe non essere lì presente.) fnt = imlib_load_font("/usr/share/fonts/truetype/freefont/FreeSans.ttf/14") If fnt == 0 Then Error.Raise("Errore nel caricamento del font !") imlib_context_set_font(fnt) ' Imposta il testo che sarebbe scritto nell'immagine, e ricava la quantità di pixel il lunghezza ed in altezza che sarebbero occupati: imlib_get_text_size("Testo qualsiasi", VarPtr(w), VarPtr(h)) Print "Lunghezza: "; w; " pixel" Print "Altezza: "; h; " pixel" End