gros-titre.php
<?
function gros_titre($image, $coul_fond_image, $coul_text, $coul_fond_text,
$haut_X, $haut_Y, $bas_X, $bas_Y, $text, $angle_text, $taille_police_text, $police_text)
{
// === CREATION D'UN GROS TITRE AVEC REMPLISSAGE DU CREUX DES LETTRES
// === AUTEUR : Thierry MOSCATO
// === CREATION: 25/08/2003
// === MAIL : tmosth@aol.com
// === POLICE TRUE TYPE (TTF) - vous pouvez trouver des polices TTF à télécharger sur internet
// par exemple sur http://perso.wanadoo.fr/dephitro/telechar.htm
// === ça ne marche que si l'angle est à 0
// === ça ne marche que si la police est supérieure à 27
if($taille_police_text < 28) $taille_police_text = 28;
if($angle_text > 0) $angle_text = 0;
// === remplissage fond de l'image qui contiendra le texte
imagefill($image, $haut_X, $haut_Y, $coul_fond_image);
// === repérage des coordonnées de la boite qui encadre la police de caractère et récupération d'un tableau depoints ($box)
$box = imagettfbbox($taille_police_text, $angle_text, $police_text, $text);
for($index = 0; $index < count($box); $index +=2)
{
$box[$index] +=$haut_X ;
$box[$index+1] +=$haut_Y;
}
// === on dessine un polygone autour du texte avec les coordonnées stockées dans le tableau $box
imagefilledpolygon($image, $box, count($box)/2, $coul_fond_text);
// === on dessine le texte True Type === attention: la police ttf employée doit se trouver dans votre répertoire, sinon, indiquer son chemin complet
imagettftext($image, $taille_police_text, $angle_text, $haut_X , $haut_Y , $coul_text, $police_text, $text);
// === nouveau remplissage fond de l'image qui contiendra le texte pour remplir les intérieurs des lettres
imagefill($image, $haut_X, $haut_Y, $coul_fond_image);
header("Content-type: image/jpeg");
imagejpeg($image);
}
// ======================= un exemple pour tester cette fonction ================
$text = " "."PICOLETO et PICOLETA"; // laisser impérativement les 2 espaces en début
$angle_text = 0; // ça ne marche que si l'angle est à 0
$taille_police_text = 48;// ça ne marche que si la police est supérieure à 27 mais amusez-vous avec des polices énormes, style 550 par ex.
$police_text = "Sophie.ttf";
$haut_X = 0;
$haut_Y = $taille_police_text;
$bas_X = 0;
$bas_Y = 0;
// === déclaration de l'image
$image = imagecreate((strlen($text) *
(($taille_police_text/2)+($taille_police_text/4)) + $taille_police_text) , $haut_Y +
($taille_police_text/14));
// === on fixe les couleurs
$coul_fond_image = imagecolorallocate($image, 150, 50, 250);
$coul_text = imagecolorallocate($image, 0, 0, 0);
$coul_fond_text = imagecolorallocate($image, 254, 235, 50);
// === on appelle la fonction de dessin du logo texte
gros_titre($image, $coul_fond_image, $coul_text, $coul_fond_text, $haut_X,
$haut_Y, $bas_X, $bas_Y, $text, $angle_text, $taille_police_text, $police_text);
?>