Scritta una stringa di testo, anche in obliquo, e su di essa con i dati ricevuti dalla funzione
imagettfbbox() è costruito un rettangolo delimitante la stringa stampata.
Nell'immagine risultante viene disegnato il rettangolo ed i valori x,y dei vertici.
<?php
// crea immagine
$Immagine =
imagecreatetruecolor(400, 350);
// colori
$Bianco =
imagecolorallocate($Immagine, 255, 255, 255);
$Viola =
imagecolorallocate($Immagine, 255, 0, 255);
// parametri per la scrittura della stringa
$FontDim = 50;// Dimensione font
$Angolo = 45;// rotazione in gradi
$x = 120; $y = 300; // inizio scrittura del testo
$FontNome = 'font/arial.ttf';
$Testo = 'Amanda'; // testo da scrivere
//scrive la stringa di testo
imagettftext($Immagine, $FontDim, $Angolo, $x, $y, $Bianco, $FontNome, $Testo);
// Recupera riquadro di selezione
$Vertici =
imagettfbbox($FontDim, $Angolo, $FontNome, $Testo);
// vertici del rettangolo delimitante il testo
for($i=0; $i<7; $i+=2){
$Vertici[$i] += $x;
$Vertici[$i+1] += $y;
}
// scrive i valori x,y dei vertici
imagestring($Immagine, 3, $Vertici[0], $Vertici[1], "x=".$Vertici[0].",y=".$Vertici[1], $Bianco);
imagestring($Immagine, 3, $Vertici[2], $Vertici[3], "x=".$Vertici[2].",y=".$Vertici[3], $Bianco);
imagestring($Immagine, 3, $Vertici[4], $Vertici[5]-15, "x=".$Vertici[4].",y=".$Vertici[5], $Bianco);
imagestring($Immagine, 3, $Vertici[6]-65, $Vertici[7]-15, "x=".$Vertici[6].",y=".$Vertici[7], $Bianco);
// Versioni PHP e GD
$Versioni = 'PHP '.phpversion();
imagestring($Immagine, 2, 10, 10, $Versioni, $Bianco);
$gdinfo = gd_info();
$Versioni = 'GD '.$gdinfo['GD Version'];
imagestring($Immagine, 2, 10, 20, $Versioni, $Bianco);
// disegna il poligono
imagepolygon($Immagine, array(
$Vertici[0], $Vertici[1], $Vertici[2], $Vertici[3],
$Vertici[4], $Vertici[5], $Vertici[6], $Vertici[7],
$Vertici[0], $Vertici[1], $Vertici[6], $Vertici[7]
),6,$Viola);
header('Content-type: image/jpeg');
imagejpeg($Immagine); // al browser
imagejpeg($Immagine,"NomeFile.jpg"); // salva
imagedestroy($Immagine); // libera memoria
?>
Risultato: