martedì 19 maggio 2009

[HOWTO] Immagini con testo dinamico in PHP con GD

Ormai i miei pochi lettori avranno capito che passo da un argomento all'altro senza alcuna logica, ma salto da una tematica all'altra in base ai vari progetti che seguo contemporaneamente (che senso avrebbe lavorare in partita iva per una sola azienda?) oppure in base a miei interessi o mie ricerche personali.

In questo caso si tratta di lavoro: fare un'immagine di sfondo con un testo configurabile che viene scritto in una certa area. In PHP

Pensavo fosse una cosa complessa.. invece l'ho preparato in 5 minuti:

<?php
// Imposto l'header http
header("Content-type: image/png");

// carico lo sfondo
$im = ImageCreateFromPng('sfondo1.png');

// trovo l'indice del bianco nella palette
// (il colore della scritta)
$white = imagecolorexact($im, 255, 255, 255);

// imposto il font (questo è il path dei font di magento,
// ma è possibile mettere un ttf a scelta)
$font_file='./lib/LinLibertineFont/LinLibertine_It-2.8.2.ttf';

// testo esemplificativo (poi sarà valorizzato in base a query
// o a input dell'utente)
$msg_text = "Hello World\nCome va?";

// posizione da cui parto a scrivere
$x=50;
$y=50;

// passo tutto alla funzione imagefttext con 12pt di grandezza font e
// angolo 0 (normale da sx a dx)
imagefttext($im,12,0, $x, $y, $white, $font_file, $msg_text);

// invio la png risultante
ImagePNG($im);

// libero la risorsa
ImageDestroy($im);
?>


That's all folks

Nessun commento: