Travail avec les images en PHP : bibliothèques GD et Imagick

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travail avec les images en PHP : aperçu des bibliothèques GD et Imagick



Le traitement d'images est l'une des tâches fréquentes du développement web. En PHP, il existe deux bibliothèques principales pour travailler avec les graphismes : GD (intégrée) et Imagick (interface pour ImageMagick). Dans cet article, nous examinerons leurs capacités, leur installation et des exemples pratiques.



Bibliothèque GD

GD est une extension PHP standard, disponible sur la plupart des hébergements. Elle permet de créer, modifier et enregistrer des images aux formats JPEG, PNG, GIF, WEBP.



Installation

Sous Ubuntu/Debian :

sudo apt install php-gdsudo systemctl restart apache2


Sous Windows — décommentez la ligne extension=gd dans php.ini.



Fonctions principales de GD

  • imagecreatefromjpeg(), imagecreatefrompng() — chargement d'image
  • imagesx(), imagesy() — obtention de la largeur et de la hauteur
  • imagecopyresampled() — redimensionnement avec rééchantillonnage
  • imagefilter() — application de filtres (flou, négatif)
  • imagettftext() — texte avec police TrueType
  • imagejpeg(), imagepng() — enregistrement du résultat


Exemple 1 : Redimensionnement d'image

<?php$src = 'photo.jpg';$dest = 'thumb.jpg';$newWidth = 300;

// Chargement de l'image source$img = imagecreatefromjpeg($src);$width = imagesx($img);$height = imagesy($img);

// Calcul de la nouvelle hauteur proportionnellement$newHeight = intval($height * $newWidth / $width);

// Création de la nouvelle image$thumb = imagecreatetruecolor($newWidth, $newHeight);imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// Enregistrementimagejpeg($thumb, $dest, 85);imagedestroy($img);imagedestroy($thumb);echo "Terminé : $dest";?>


Exemple 2 : Ajout d'un filigrane

<?php$mainImg = imagecreatefromjpeg('background.jpg');$watermark = imagecreatefrompng('logo.png');

// Obtention des dimensions$mW = imagesx($mainImg);$mH = imagesy($mainImg);$wW = imagesx($watermark);$wH = imagesy($watermark);

// Position — coin inférieur droit avec une marge de 10px$dstX = $mW - $wW - 10;$dstY = $mH - $wH - 10;

// Copie du filigrane avec transparenceimagecopy($mainImg, $watermark, $dstX, $dstY, 0, 0, $wW, $wH);

// Enregistrementimagepng($mainImg, 'result.png');imagedestroy($mainImg);imagedestroy($watermark);?>


Bibliothèque Imagick

Imagick est une interface orientée objet pour l'outil puissant ImageMagick. Elle prend en charge plus de 200 formats, des transformations complexes, le travail avec des PDF, l'animation et les profils colorimétriques.



Installation

sudo apt install imagemagick php-imagicksudo systemctl restart apache2


Vérifier l'installation :

<?php phpinfo(); ?>

Recherchez la section imagick.



Classes et méthodes principales

  • Imagick — classe principale pour travailler avec une image
  • readImage() — chargement d'un fichier
  • resizeImage() — redimensionnement
  • cropImage() — recadrage
  • compositeImage() — superposition d'images
  • blurImage() — flou
  • setImageFormat() — conversion de format


Exemple 3 : Redimensionnement et recadrage

<?php$image = new Imagick('photo.jpg');

// Redimensionnement à 800x600 en conservant les proportions$image->resizeImage(800, 600, Imagick::FILTER_LANCZOS, 1, true);

// Recadrage de la partie centrale 400x400$width = $image->getImageWidth();$height = $image->getImageHeight();$x = ($width - 400) / 2;$y

Recommendations