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 9 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 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda