<?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);
|
|
?>
|
|
|