Déclaration des images avec PHP GD

PHP cours tutorial

Déclaration des images avec PHP GD

Avec PHP, la librairie GD et les fonctions image de php on peut créer des image ou les modifier. Les fonctions incluent dans cette librairie permettront aux utilisateurs de PHP  la création d'image et la manipulation de photos. PHP avec GD peut créer des images avec les extensions de fichier jpg, gif, swf, tiff, png et jpeg.

Déclaration de l’image


Etape trés importante lors de la création d'une image, il faut dire au navigateur d'interpréter  notre code PHP en tant qu'image.
C’est la fonction header()  qui va nous servir pour déclarer que le code qui suit est une image.
Au début du fichier image ou avant d'afficher l'image, il faudra mettre le "header" correspondant au format de l’image souhaitée.

Voici les différentes déclarations qu’on  peut utiliser :

  1. header("Content-type: image/png"); //format png  
  2. header("Content-type: image/jpeg"); //format jpg  
  3. header("Content-type: image/gif"); //format gif  
  4. header("Content-type: image/bmp"); //format bmp  
  5. header("Content-type: image/xbm"); //format xbm   

D’autres formats sont possibles  mais devront être installés en compléments nous n’en parlons pas dans ce cours

Créer une image PHP GD

Puis pour créer une image avec GD on utilise la fonction imagecreate()

Cette fonction crée une nouvelle image à palette

CODE

$img = imagecreate(250, 80) ;
 

 Cette ligne de code crée une nouvelle image et définir un canevas vierge avec une largeur de 250 pixels et une hauteur de 80 pixels.

Réglage des couleurs

Pour les couleurs on utilise la fonction :

imagecolorallocate() – Cette fonction alloue une couleur à une image.

La syntaxe est la suivante :

imagecolorallocate ( $img, $rouge, $verte, $bleu)

  • $img : est l’image à colorer
  • $rouge : entier de 0 à 255 pour indiquer la quantité du rouge
  • $vert : entier de 0 à 255 pour indiquer la quantité du vert
  • $bleu : entier de 0 à 255 pour indiquer la quantité du bleu

Pour notre image on va utiliser un fond ( background) de couleur noir, vous pouvez choisir une autre couleur.

La palette de couleur utilisée est RGB 250 couleurs

Noir(0, 0, 0)

Rouge(255, 0,0)

Vert(0,255,0)

Bleu(0, 0, 255)

CODE

imagecolorallocate($img , 0 , 0 , 0);

Affichage de l’image

 

Pour afficher notre image on utilise la fonction :

imagepng() : cette fonction envoie une image PNG vers un navigateur ou un fichier

Sa syntaxe est :

imagepng ($img [,  $filename [, $quality [,$filters ]]] )

$img : Une ressource d'image, retourné par une des fonctions de création d'images comme imagecreate() ou imagecolorallocate()

$filename : Paramètre facultatif.  Le chemin vers le fichier de sauvegarde. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement dans le navigatuer.

$quality : Paramètre facultatif. Degré de compression : depuis 0 (aucune compression) à 9.

$filters : Paramètre facultatif. Permet la réduction de la taille du fichier PNG.

CODE

imagepng ( $im );

Voici maintenant les différentes fonctions pour créer et afficher une image, en fonction bien sur du "header" déclaré précédemment :

Fonctions

Actions

imagepng($image);

Affiche une image PNG (Portable Network Graphics).

imagejpeg($image);

Affiche une image JPEG (Joint Photographic Experts Group).

imagegif($image);

Affiche une image GIF (Graphics Interchange Format).

imagewbmp($image);

Affiche une image BMP (Bitmap).

imagexbm($image);

Affiche une image XBM (X BitMap).

Libérer la memoire

Et en fin pour libérer la mémoire on utilise la fonction :

imagedestroy() — Détruit une image dans la mémoire.

CODE

imagedestroy ( $im );

Et voila notre code final à mettre dans un fichier PHP « image.php ».

CODE

Sélectionner le code

              <?php
              header ( "Content-type: image/png" );
              $im = @ imagecreate ( 250 , 80 )
              or die( "La nouvelle image GD ne être initialisée!" );
              imagecolorallocate ( $im , 0 , 0 , 0 );
              imagepng ( $im );
              imagedestroy ( $im );
              ?>
          
 

Enregistrer une image

PHP GD ne sert pas seulement à créer des images et les afficher dans le navigateur.

Les images créées peuvent êtres enregistrées  dans un fichier.
Pour cela on utilise un argument supplémentaire dans la fonction imagecreate().

imagepng($image, $fichier);

$fichier cette variable va indiquer  le chemin et le nom du fichier dans le quel on veut enregistrer notre image.

 Exemple :

Sélectionner le code

            
              <?php  
              $fichier = "/images/image1.png";  
              /* on enregistre l'image dans le répertoire "images" 
              avec comme nom de fichier "image1.png" */  
              imagepng($image,$fichier);  
              ?>  
            
          
 

Par carabde 20 Aout 2014