Ciao Daniele,
ho trovato anche questa su PHP.net
Codice PHP:
<?php
function im_wordwrap($txt,$font,$size,$width) {
$sep=array(' ','-'); // separators
$res=array();
$buf='';
// main function loop
for($i=0;$i<strlen($txt);$i++) {
$l=$txt{$i};
if ($l=='^') {
$res[]=$buf;
$buf='';
continue;
}
$t=$buf.$l;
$bbox=imagettfbbox($size,0,$font,$t);
$left=($bbox[0]>$bbox[6])?$bbox[6]:$bbox[0]; // determine most far points
$right=($bbox[2]>$bbox[4])?$bbox[2]:$bbox[4]; // idem
$w=$right-$left; // get total width
if ($w>$width) {
if ($buf=='') return false; // FATAL: 1 letter is smallest than the pixel width - avoid infinite loop
// we can assume that everything present in $buf currently is inside our limits
// find a separator in string
$fp=false;
foreach($sep as $s) {
$p=strrpos($buf,$s);
if (($p!==false) and ($p>$fp)) $fp=$p;
}
if ($fp===false) {
// let's break here !
$res[]=$buf;
$buf='';
$i--; // dececrase $i to retry this letter
continue;
}
// $fp+1 -> we put the separator char at the end of the prev. line =p
$res[]=substr($buf,0,$fp+1);
$buf=substr($buf,$fp+1);
$i--;
continue;
}
$buf.=$l;
}
if ($buf!='') $res[]=$buf;
return $res;
}
?>
Il mio problema purtroppo è che non so come richiamare la funzione. e far creare cosi l'immagine.
Io faccio questo
Codice PHP:
header("Content-type: image/jpeg");
$font="font/HelveticaNeueRoman.otf";
$stringa="Questo è finto testo";
$fontsize=16;
$l_space=0; //spazio a sinistra inizio testo
$r_space=24; //spazio a destra alla fine del testo
$bbox = imagettfbbox($fontsize, 0, $font, $stringa);
$str_width = max($bbox[0],$bbox[2],$bbox[4],$bbox[6]) - min($bbox[0],$bbox[2],$bbox[4],$bbox[6]);
$font_space = ($str_width + $l_space )+ $r_space ;
$im = imagecreate($font_space , 24);
$backcolor = imagecolorallocate($im, 255, 255, 255);
$fontcolor = imagecolorallocate($im, 158, 31, 0);
// Replace path by your own font path
imagettftext($im, $fontsize, 0, $l_space, 18, $fontcolor, "$font",
"$stringa");
imagejpeg($im,"",100);
imagedestroy($im);
Quella funzione?
dove la caccio?