/*------------------------------*/
|
/*
|
Titre : Ecrire un texte dans une image avec retour a la ligne automatique
|
|
Date édition : 15 Fev 2019
|
*/
|
/*------------------------------*/
|
|
function imagettfcadre($pic , $size , $x , $y , $color , $police , $l ,
|
$saut_ligne , $texte){
|
|
|
/* Vous pouvez utiliser cette fonction comme bon vous semble, par contre si vous
|
// effectuez des améliorations ou trouviez des bugs,
|
* je vous remercie par avance de m'en informer à  gml@communautephp.com
|
|
* Paramètres :
|
* $pic : identifiant d'image
|
* $size : taille de police
|
* $x : largeur de l'image
|
* $y : hauteur de l'image
|
* $color : couleur obtenue par imagecolorallocate()
|
* $police : url de la police
|
* $l : longueur du cadre
|
* $saut_ligne : espacement entre 2 lignes
|
* $text : texte à  écrire
|
|
*/
|
|
if (!is_resource($pic) OR !is_int($color) OR $size == 0) return FALSE;
|
$l_espace = imagettfbbox($size, 0, $police, "-");
|
$l_espace = $l_espace[2]-$l_espace[0];
|
|
$lignes = explode("\n", $texte);
|
for ($i=0;$i<count($lignes);$i++)
|
{
|
$mots = explode(" ", $lignes[$i]);
|
$l_temp = 0;
|
for ($j=0;$j<count($mots);$j++)
|
{
|
$mots[$j] = $mots[$j];
|
$l_mot = imagettfbbox($size, 0, $police, $mots[$j]);
|
$l_mot = $l_mot[2]-$l_mot[0];
|
if ($l_mot+$l_temp<=$l)
|
{
|
imagettftext($pic, $size, 0, $x+$l_temp, $y, $color, $police, $mots[$j]);
|
$l_temp += $l_mot+$l_espace;
|
}
|
else
|
{
|
$y += $saut_ligne + $size;
|
imagettftext($pic, $size, 0, $x, $y, $color, $police, $mots[$j]);
|
$l_temp = $l_mot+$l_espace;
|
}
|
}
|
$y += $saut_ligne + $size;
|
}
|
return $y;
|
}
|
|
| ?> |