GD, php e immagini generate al volo

di motherboard Commenta

GD, php e immagini generate al volo

Spesso, molto spesso, webmaster alle prese con la creazione di un nuovo sito scelgono font molto particolari non sapendo che solo sul loro computer e pochi altri si vedranno correttamente i caratteri. Dopo alcune settimana arriverà l’atroce momento: il webmaster alle prime armi sta facendo vedere il sito su di un’altro pc ad un amico, o peggio ancora, a qualche estraneo e, fiero del lavoro fatto, non guarda neanche lo schermo.

Dopo qualche secondo però, l’interlocutore lo richiama dicendo che la grafica è un po’ bruttina, che le righe si sovrappongono, che il Times New Roman non è che ci sta molto bene e chissà quali altri problemi. Il nostro amico webmaster, che non ci crede, finalmente guarda il computer e…. si è tutto vero. Il nostro amico si strapperebbe i capelli dalla rabbia, e rosso in volto se ne va.

Ora per evitare questi brutti momenti ci sono due soluzioni:

1) Utilizzare i font predefiniti di default già in Windows (Times New Roman, Arial, Verdana e pochi altri)

2) Generare le immagini contenenti il testo con il font particolare con le librerie GD

Ovviamente consigliamo la prima soluzione, il caricamento sarà più veloce; ma se proprio non potete fare a meno di quei font particolari e originali, non vi resta che la seconda soluzione.

Ecco un esempio di codice PHP

<?
$img = imagecreate (180, 35);
$sfondo = imagecolorallocate($img,0,0,0);
$stringa = imagecolorallocate($img,255,255,255);
imagettftext($img,15,3,14,27,$stringa,"quicivannoifont\arial.ttf","Font: Arial");
header("Content-type: image/png");
imagepng($img);
?>

Per utilizzare questo codice, dovrete avere le librerie GD (spessissimo installate di default su moltissimi server) e avere nella cartella quicivannoifont il font arial.

Con la chiamata imagecreate(180, 35) si crea la “base” per l’immagine, il rettangolo vuoto di dimensioni 180 (larghezza) per 35 (altezza) pixel. Su di esso si potrà disegnare utilizzando le funzioni fornite da PHP di interfaccia verso la libreria GD. Per definire un colore si utilizza la funzione imagecolorallocate, dando come parametro il codice RGB relativo. Qui trovate molti esempi di codici RGB. Vediamo invece le funzioni imagettftext() simile a imagestring() ma più ricca di opzioni, anch’essa infatti scrive una stringa all’interno di un’immagine ma permette inoltre di stabilirne grandezza del carattere (15), inclinazione (3), distanza dx/sx (14) e distanza up/down (27)

Infine andrà indicato l’header, jpg, gif o png a seconda della necessità e per ultimo la funzione finale imagejpeg, imagegif o imagepng a seconda della dichiarazione precedente.

Un’altra funzionalità delle librerie GD è che si possono anche modificare le immagini, omettendo la parte relativa alla creazione e dichiarando nella variabile $img il percorso dell’immagine da modificare.

Lascia un commento

Il tuo indirizzo email non verrà pubblicato.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>