# Traitement des images et GD

# Introduction

PHP ne se limite pas à la génération de pages HTML. Il peut aussi servir à créer et manipuler des images, dans un grand choix de formats, comme GIF, PNG, JPEG, WBMP et XPM. Et PHP peut même générer directement des images pour le navigateur, avec la bibliothèque GD. GD et PHP auront aussi besoin d'autres bibliothèques, en fonction des formats à utiliser.

Il est possible d'utiliser les fonctions PHP pour obtenir les tailles des images aux formats JPEG, GIF, PNG, SWF, TIFF et JPEG2000.

Avec l'extension exif, il sera possible de travailler avec les informations stockées dans les en-têtes des images JPEG et TIFF. De cette façon, il sera possible de lire les métadonnées générées par les appareils numériques. Les fonctions exif ne nécessitent pas la bibliothèque GD.

> Note: Se reporter à la section sur les besoins pour savoir comment étendre les capacités des fonctions sur les images pour lire, écrire et modifier les images. Pour lire les métadonnées des photos prises avec des appareils numériques, il faut utiliser l'extension exif mentionnée ci-dessus.

> Note: La fonction getimagesize() ne nécessite pas l'extension GD.

Attention

Tandis que la version empaquetée de la bibliothèque GD utilise le gestionnaire de mémoire Zend pour allouer de la mémoire, les versions système ne le font pas, donc memory_limit ne s'applique pas.

GD supporte un grand nombre de formats ; voici une liste de formats supportés par GD ainsi que des notes spécifiant la disponibilité du support en lecture/écriture.

Formats supportés par GD
Format | Support en lecture | Support en écriture | Notes
--- | --- | --- | ---
JPEG | `true` | `true` |
PNG | `true` | `true` |
GIF | `true` | `true` |
XBM | `true` | `true` |
XPM | `true` | `false` |
WBMP | `true` | `true` |
WebP | `true` | `true` |
BMP | `true` | `true` | Disponible à partir de PHP 7.2.0

Malgré le fait que la plupart des formats soient disponibles avec un support en lecture et en écriture dans le tableau ci-dessus, cela ne signifie pas que PHP a été compilé avec le support adéquat. Pour connaître les formats supportés par GD durant la compilation, il est possible d'utiliser la fonction gd_info() ; pour plus d'informations sur le support lors de la compilation d'un ou plusieurs formats, se reporter au chapitre sur l'installation.

- Installation/Configuration
  - Pré-requis
  - Installation
  - Configuration à l'exécution
  - Types de ressources
- Constantes pré-définies
- Exemples
  - Création d'une image PNG avec PHP
  - Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
  - Exemple avec imagecopymerge pour créer un tatouage numérique translucide
- Fonctions GD et images
  - gd_info — Retourne des informations à propos de la bibliothèque GD installée
  - getimagesize — Retourne la taille d'une image
  - getimagesizefromstring — Récupère la taille d'une image depuis une chaîne
  - image_type_to_extension — Retourne l'extension du fichier pour le type d'image
  - image_type_to_mime_type — Lit le Mime-Type d'un type d'image
  - image2wbmp — Affichage de l'image vers le navigateur ou dans un fichier
  - imageaffine — Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
  - imageaffinematrixconcat — Concatène deux matrices de transformation affine
  - imageaffinematrixget — Obtenir une matrice de transformation affine
  - imagealphablending — Modifie le mode de blending d'une image
  - imageantialias — Utiliser ou non les fonctions d'antialias
  - imagearc — Dessine un arc
  - imageavif — Affichage de l'image vers le navigateur ou dans un fichier
  - imagebmp — Affiche ou enregistre une image BMP au navigateur ou dans un fichier
  - imagechar — Dessine un caractère horizontalement
  - imagecharup — Dessine un caractère verticalement
  - imagecolorallocate — Alloue une couleur pour une image
  - imagecolorallocatealpha — Alloue une couleur à une image
  - imagecolorat — Retourne l'index de la couleur d'un pixel donné
  - imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée
  - imagecolorclosestalpha — Retourne la couleur la plus proche, en tenant compte du canal alpha
  - imagecolorclosesthwb — Récupère l'index de la couleur ayant la teinte, le blanc et le noir
  - imagecolordeallocate — Supprime une couleur d'une image
  - imagecolorexact — Retourne l'index de la couleur donnée
  - imagecolorexactalpha — Retourne l'index d'une couleur avec son canal alpha
  - imagecolormatch — Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor
  - imagecolorresolve — Retourne l'index de la couleur donnée, ou la plus proche possible
  - imagecolorresolvealpha — Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha
  - imagecolorset — Change la couleur dans une palette à l'index donné
  - imagecolorsforindex — Retourne la couleur associée à un index
  - imagecolorstotal — Calcule le nombre de couleurs d'une palette
  - imagecolortransparent — Définit la couleur transparente
  - imageconvolution — Applique une matrice de convolution 3x3, en utilisant un coefficient et un décalage
  - imagecopy — Copie une partie d'une image
  - imagecopymerge — Copie et fusionne une partie d'une image
  - imagecopymergegray — Copie et fusionne une partie d'une image en niveaux de gris
  - imagecopyresampled — Copie, redimensionne, rééchantillonne une image
  - imagecopyresized — Copie et redimensionne une partie d'une image
  - imagecreate — Crée une nouvelle image à palette
  - imagecreatefromavif — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefrombmp — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromgd — Crée une nouvelle image à partir d'un fichier GD ou d'une URL
  - imagecreatefromgd2 — Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL
  - imagecreatefromgd2part — Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL
  - imagecreatefromgif — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromjpeg — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefrompng — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromstring — Crée une image à partir d'une chaîne
  - imagecreatefromtga — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromwbmp — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromwebp — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromxbm — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatefromxpm — Crée une nouvelle image depuis un fichier ou une URL
  - imagecreatetruecolor — Crée une nouvelle image en couleurs vraies
  - imagecrop — Recadre une image sur le rectangle donné
  - imagecropauto — Recadre une image automatiquement en utilisant un des modes disponibles
  - imagedashedline — Dessine une ligne pointillée
  - imagedestroy — Détruit une image
  - imageellipse — Dessine une ellipse
  - imagefill — Remplissage par diffusion
  - imagefilledarc — Dessine un arc partiel et le remplit
  - imagefilledellipse — Dessine une ellipse pleine
  - imagefilledpolygon — Dessine un polygone rempli
  - imagefilledrectangle — Dessine un rectangle rempli
  - imagefilltoborder — Remplit une région avec une couleur spécifique
  - imagefilter — Applique un filtre à une image
  - imageflip — Retourne une image en utilisant le mode fourni
  - imagefontheight — Retourne la hauteur de la police
  - imagefontwidth — Retourne la largeur de la police
  - imageftbbox — Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2
  - imagefttext — Écrit du texte dans une image avec la police courante FreeType 2
  - imagegammacorrect — Applique une correction gamma à l'image GD
  - imagegd — Génère une image au format GD, vers le navigateur ou un fichier
  - imagegd2 — Génère une image au format GD2, vers le navigateur ou un fichier
  - imagegetclip — Récupère le rectangle de coupure
  - imagegetinterpolation — Récupère la méthode d'interpolation
  - imagegif — Affichage de l'image vers le navigateur ou dans un fichier
  - imagegrabscreen — Capture l'écran complet
  - imagegrabwindow — Capture une fenêtre
  - imageinterlace — Active ou désactive l'entrelacement
  - imageistruecolor — Détermine si une image est une image truecolor
  - imagejpeg — Affichage de l'image vers le navigateur ou dans un fichier
  - imagelayereffect — Active l'option d'alpha blending, pour utiliser les effets de libgd
  - imageline — Dessine une ligne
  - imageloadfont — Charge une nouvelle police
  - imageopenpolygon — Dessine un polygone ouvert
  - imagepalettecopy — Copie la palette d'une image à l'autre
  - imagepalettetotruecolor — Convertit une image basée sur une palette en couleur vraie
  - imagepng — Envoie une image PNG vers un navigateur ou un fichier
  - imagepolygon — Dessine un polygone
  - imagerectangle — Dessine un rectangle
  - imageresolution — Récupère ou définit la résolution de l'image
  - imagerotate — Fait tourner une image d'un angle
  - imagesavealpha — Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegarde d'images
  - imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  - imagesetbrush — Modifie la brosse pour le dessin des lignes
  - imagesetclip — Définit le rectangle de coupure
  - imagesetinterpolation — Définit la méthode d'interpolation
  - imagesetpixel — Dessine un pixel
  - imagesetstyle — Configure le style pour le dessin des lignes
  - imagesetthickness — Modifie l'épaisseur d'un trait
  - imagesettile — Modifie l'image utilisée pour le carrelage
  - imagestring — Dessine une chaîne horizontale
  - imagestringup — Dessine une chaîne verticale
  - imagesx — Retourne la largeur d'une image
  - imagesy — Retourne la hauteur de l'image
  - imagetruecolortopalette — Convertit une image en couleurs vraies en image à palette
  - imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType
  - imagettftext — Dessine un texte avec une police TrueType
  - imagetypes — Retourne les types d'images supportés par la version courante de PHP
  - imagewbmp — Affichage de l'image vers le navigateur ou dans un fichier
  - imagewebp — Affiche une image WebP vers un navigateur ou un fichier
  - imagexbm — Génère une image au format XBM
  - iptcembed — Intègre des données binaires IPTC dans une image JPEG
  - iptcparse — Analyse un bloc binaire IPTC et recherche les balises simples
  - jpeg2wbmp — Convertit une image JPEG en image WBMP
  - png2wbmp — Convertit une image PNG en image WBMP
- GdImage — La classe GdImage
- GdFont — La classe GdFont

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open