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 :
Sélectionner 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 :
Sélectionner 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.
Sélectionner 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);
Livre numérique court pour comprendre la méthode secrète permettant d'obtenir des likes sans fin sur Facebook.
GAGNER DE L'ARGENT