oujood.com

Ecrire du texte dans une image avec PHP et GD


chercher |

PHP cours tutorial

Ecrire du texte dans une image avec PHP et GD

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:

1) Texte horizontal


 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

2) Texte vertical


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

3) Texte incliné


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

Ajouter un texte à une image ou photo préexistante


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

Par carabde 20 Aout 2014

MARKETPOWER-IA
Logiciel d'I.A.
Logiciel d'I.A. 100% Français pour lancer son business en ligne

La méthode secrète likes sans fin sur Facebook

Livre numérique court pour comprendre la méthode secrète permettant d'obtenir des likes sans fin sur Facebook.

GAGNER DE L'ARGENT
GRÂCE À FACEBOOK 
N'A JAMAIS ÉTÉ SI FACILE


Consulter


1tpe