centrere un testo all'interno di un'immagine

Ciao a tutti,

ho un problema nel centrare un testo all'interno di un'immagine:

$box = imagettfbbox ( $this->fontSize, $this->angle, $this->fontFile, $txt );

$imgWidth = abs($box[2] + $box[0]) + $this->fontSize;

$imgHeight = abs($box[7] + $box[1]) + $this->fontSize;

imagettftext($im, $this->fontSize, $this->angle, 0, $imgHeight - ($this->fontSize/2 ), $fgColor, $this->fontFile, $txt);

per i testi tipo "casa", "aereo".... mi crea un box alto 31px

mentre se il testo presenta delle lettere con le gambette es "company", "speciale" .... il box creato alto 28px

mi sapreste dare qualche indicazione in merito??

Grazie

inviato 8 anni fa
stellina
X 0 X

Le formule per la centratura sono sbagliate, guarda questo esempio:

<?php
header("Content-type: image/jpeg");

$im = imagecreatefromjpeg("D:\\Immagini\prova.jpg");

$imgSize = getimagesize("D:\\Immagini\prova.jpg");
$imgWidth = $imgSize[0];
$imgHeight = $imgSize[1];

$fgColor = imagecolorallocate($im, 0, 0,0); 

$testo = "Buon Natale e buon anno!!!";
$fontSize = 20;
$angolo = 0;
$font = "C:\WINDOWS\Fonts\TAHOMA.ttf";

$box = imagettfbbox ( $fontSize, $angolo, $font, $testo);
$txtWidth = $box[2] - $box[0];
$txtHeight = $box[7] - $box[1];

imagettftext($im, $fontSize, $angolo, ($imgWidth-$txtWidth)/2, ($imgHeight-$txtHeight)/2, $fgColor, $font, $testo);

imagejpeg($im);
?>
risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda