Retourne une chaîne format e
Créer une image et y ajouter un texte
Il est possible d'ajouter du texte sur une image avec la librairie GD et PHP.
Pour ajouter un texte sur une image on utilise les fonctions suivantes:
La fonction imageString()
Dont la syntaxe est :
ImageString($img, $font_size, $x, $y, $texte, $color)
Cette fonction écrit un texte horizontal sur une image
$img :image source sur laquelle on va ajouter le texte
$font_size: la taille de la police à utiliser pour le texte, exprimé en pixels (GD2) ou en points de 1 à 5 (GD1),
$x et $y : les coordonnées du texte pour déterminer la position du texte sur l’image
$color : la couleur à utiliser pour le texte
La fonction imagestringup()
Dont la syntaxe est :
imagestringup($img, $font_size, $x, $y, $texte, $couleur);
Cette fonction écrit un texte vertical sur une image
$img :image source sur laquelle on va ajouter le texte
$font_size: la taille de la police à utiliser pour le texte, exprimé en pixels (GD2) ou en points de 1 à 5 (GD1),
$x et $y : les coordonnées du texte pour déterminer la position du texte sur l’image
$color : la couleur à utiliser pour le texte
Exemple :
Exemple : 📋 Copier le code
<?php header("Content-type: image/png"); $longueur = 150; $hauteur = 150; $image = imagecreatetruecolor($longueur ,$hauteur ); $rouge = hexdec("cc"); $vert = hexdec("ff"); $bleu = hexdec("00"); $couleur = imagecolorallocate($image,$rouge,$vert,$bleu); //on écrit un texte horizontal $x= 30 ; $y=10 ; imagestring($image, 2, $x, $y, "Texte horizontal", $couleur); //on écrit un texte vertical $x= 50 ; $y=130 ; imagestringup($image, 2, $x, $y, "Texte vertical", $couleur); imagepng($image); imagedestroy($image); ?>
On peut aussi écrire un texte incliné à un angle donné.
La fonction qui permet d’écrire un texte incliné est :
imagettfbbox()
dont la syntaxe est :
imagettfbbox($image, $font_size, $angle, $x, $y, $couleur, $font_filename, $text);
Avec :
$font_size est la taille du texte, exprimé en pixels (GD2) ou en points de 1 à 5 (GD1),
$angle est l'angle du texte, exprimé en degrés. Pour un texte horizontal il faudra mettre 0 (pour 0°).
$font_filename est le nom de fichier de la police TTF à utiliser.
$text est la chaîne de caractères à écrire.
Exemple :
Exemple : 📋 Copier le code
<?php // Définition du content-type header('Content-type: image/png'); // Création du caneva de l'image $im = imagecreatetruecolor(250, 250); // Création de quelques couleurs $bleu = imagecolorallocate($im, 0, 0, 255); $gris = imagecolorallocate($im, 128, 128, 128); $blanc = imagecolorallocate($im, 255, 255, 255); /* On crée une image de rectangle blanc sur la quelle on va ajouter notre texte*/ imagefilledrectangle($im, 0, 0, 250, 250,$blanc ); // Le texte à dessiner $text = 'Texte incliné à 45°'; /* Le chemin de votre police dans cet exemple la fiche de la police se trouve dans le même dossier*/ $font = './arial.ttf'; // On ajoute une ombres au texte imagettftext($im, 20, 45, 12, 222, $gris, $font, $text); // Ajout du texte imagettftext($im, 20, 45, 10, 220, $bleu, $font, $text); // Utiliser imagepng() donnera un texte plus claire, // comparé à l'utilisation de la fonction imagejpeg() imagepng($im); imagedestroy($im); ?>
Pour ajouter un texte à une image ou une photo existante nous utiliserons le même script que ci-dessus .
Mais au lieu de :
$img = imageCreate($largeur, $hauteur);
nous utilisons la fonction imagecreatefrompng() comme suit :
$img = imagecreatefrompng("dossier/image.png");
La fonction imagecreatefrompng("dossier/image.png") crée une image à partir d’une image ou une photo qui existe déjà sur note machine.
Avec "dossier/image.png" qui est le chemin de notre image ou photo sur laquelle on veut ajouter le texte
Exemple : Pour exécuter cet exemple remplacer VotreImage.png par le chemin de votre image ou photo.
Exemple : 📋 Copier le code
<?php $tableau = GetImageSize ("image.png"); $largeur = $tableau[0]; $hauteur =$tableau[1]; header("Content-type:image/png"); $titre_police= 2; $string = "Texte dans une image"; $x=($largeur-imageFontWidth($titre_police)*strlen("$string"))/2; $y=($hauteur/2-5*$titre_police); // VotreImage.png est le chemin de votre image $img = imagecreatefrompng("VotreImage.png"); $noir = imagecolorallocate($img, 0, 0, 0); imagestring($img, $titre_police, $x, $y, $string, $noir); imagePNG($img); imageDestroy($img);Par carabde 20 Aout 2014