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 apache2Sous Windows — décommentez la ligne extension=gd dans php.ini.
Fonctions principales de GD
imagecreatefromjpeg(),imagecreatefrompng()— chargement d'imageimagesx(),imagesy()— obtention de la largeur et de la hauteurimagecopyresampled()— redimensionnement avec rééchantillonnageimagefilter()— application de filtres (flou, négatif)imagettftext()— texte avec police TrueTypeimagejpeg(),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 apache2Vérifier l'installation :
<?php phpinfo(); ?>Recherchez la section imagick.
Classes et méthodes principales
Imagick— classe principale pour travailler avec une imagereadImage()— chargement d'un fichierresizeImage()— redimensionnementcropImage()— recadragecompositeImage()— superposition d'imagesblurImage()— flousetImageFormat()— 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 Aussi dans la bibliothèque
Géolocalisation et cartes dans Node.js : bibliothèques pour travailler avec les cartes
Files d'attente de tâches pour TypeScript : Bull, Agenda et Bee-Queue
Travailler avec YAML en TypeScript : parsing, génération et validation de données
Client Redis Swift : RediStack pour iOS/macOS