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.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
 
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.
 
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.
  
Per poter fruire delle sue funzionalità in Gambas, è necessario richiamare la libreria (nella sua attuale versione): "''libImlib2.so.1.4.6''"
+
E' necessario richiamare la libreria: "''libImlib2.so.1.7.4'' ".
 
 
  
 
Mostriamo un semplice esempio:
 
Mostriamo un semplice esempio:
  Library "libImlib2:1.4.6"
+
  Library "libImlib2:1.7.4"
 
   
 
   
 
  <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 27: Riga 26:
 
   Dim w, h As Integer
 
   Dim w, h As Integer
 
   
 
   
  <FONT Color=gray>' ''Impostail percorso del font di tipo TTF e della dimensione da utilizzare con il testo.''
+
  <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 "Ubuntu-B.ttf", ed impostando la dimensione del carattere a "8":''</font>
+
  ' ''Qui facciamo un esempio concreto con il font "FreeSans.ttf", ed impostando la dimensione del carattere a "14":''</font>
  fnt = imlib_load_font("/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf/8")
+
  fnt = imlib_load_font("/usr/share/fonts/truetype/freefont/FreeSans.ttf/14")
  If IsNull(fnt) Then Error.Raise("Errore nel caricamento del font !")
+
  If fnt == 0 Then Error.Raise("Errore nel caricamento del font !")
 
   
 
   
  imlib_context_set_font(fnt)
+
  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("alibaba ed i 40 latrones", VarPtr(w), VarPtr(h))
+
  imlib_get_text_size("Testo qualsiasi", VarPtr(w), VarPtr(h))
  Print "Lunghezza: ", Null; w; " pixel"
+
  Print "Lunghezza: "; w; " pixel"
  Print "Altezza: ", Null; h; " pixel"
+
  Print "Altezza:   "; h; " pixel"
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
  
  
 
=Riferimenti=
 
=Riferimenti=
* [http://adesklets.sourcearchive.com/documentation/0.4.7-1/main.html Imlib2 Library Documentation]
+
* https://docs.enlightenment.org/api/imlib2/html/

Versione attuale delle 15:45, 1 mag 2023

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.7.4 ".

Mostriamo un semplice esempio:

Library "libImlib2:1.7.4"

' 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":
 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


Riferimenti