script per testo variabile

  • Creatore Discussione Creatore Discussione virgus
  • Data di inizio Data di inizio

virgus

Nuovo Utente
9 Nov 2010
9
0
0
Salve di nuovo ragazzi :)

sono riuscito a realizzare un script che mi stampa su un'immagine di sfondo, il testo contenente i dati inviati da un form dopo che ha trasformato anche esso in un'immagine!

solamente vorrei che qualcuno di voi mi consigliasse uno script che tenga conto della variabilità della lunghezza delle parole che possono essere immesse e che quindi anche se un utente inserisce una parola corta o una lunga la frase rimane al posto suo.

ecco il codice:

Codice:
<?
$nome=$_POST["nome"];
$grado=$_POST["grado"];
$officiante=$_POST["officiante"];
$diobat=$_POST["diobat"];
$arcibat=$_POST["arcibat"];
$databat=$_POST["databat"];
$riga1="Il nuovo fedele dell'Altissimo chiamato";
$riga2= $nome;
$riga3= "ha ricevuto il sacramento del battesimo,";
$riga4= "dal $grado $officiante";
$riga5= "nella diocesi di $diobat,";
$riga6= "arcidiocesi di $arcibat,";
$riga7= "in data $databat.";

// Intestazione per la creazione di un'immagine jpeg
header("Content-type: image/jpeg");

$immagine = imagecreatefromjpeg("1zgdi07.jpg");

// Creazione del colore del testo dell'immagine
$ctesto = imagecolorallocate($immagine, 0, 0, 0);

$font = 'CloisterBlack.ttf';
// parametri: nome immagine, dimensione font, inclinazione, posx, posy, colore testo, font, testo
imagettftext($immagine, 16, 0, 100, 360, $ctesto, $font, $riga1);
imagettftext($immagine, 16, 0, 230, 390, $ctesto, $font, $riga2);
imagettftext($immagine, 16, 0, 110, 420, $ctesto, $font, $riga3);
imagettftext($immagine, 16, 0, 150, 450, $ctesto, $font, $riga4);
imagettftext($immagine, 16, 0, 50, 480, $ctesto, $font, $riga5);
imagettftext($immagine, 16, 0, 280, 480, $ctesto, $font, $riga6);
imagettftext($immagine, 16, 0, 180, 510, $ctesto, $font, $riga7);

// Stampa a video dell'immagine
imagejpeg($immagine);

// Distruzione dell'oggetto image
imagedestroy($immagine);
?>

come vedete le coordinate non mi danno questa sicurezza perchè se un utente inserisce una parola corta magari mi rimane troppo spazio con la prima parola della frase di fianco, se ne inserisce una troppo lunga magari mi si sovrappone con la prima parola della frase di fianco.

Spero di essermi spiegato bene 0:)
 
Puoi provare ad usare la funzione imagettfbbox che ti calcola l'ingombro di un testo con un determinato font, e poi usare questi dati per riposizionare le altre parti del testo.
 

Discussioni simili