<?php
  | 
/*---------------------------------------------------------------*/
  | 
/*
  | 
    Titre : Crée des titres sympa                                                                                      
  | 
                                                                                                                          
  | 
    URL   : https://phpsources.net/code_s.php?id=973
  | 
    Date Ã©dition     : 15 Fév 2019                                                                                 
  | 
*/
  | 
/*---------------------------------------------------------------*/
  | 
  
  | 
 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 de points ($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);
  | 
  | 
?>
  | 
  | 
 |