Le traitement d'image est une exigence très courante dans le développement Web. Qu'il s'agisse de générer des codes de vérification, de recadrer et d'étendre les images ou de convertir des images en formats, il est inséparable à partir du fonctionnement des types de données d'image. Dans l'environnement PHP, ces tâches peuvent être principalement accomplies via la bibliothèque GD et la bibliothèque ImageMagick.
La bibliothèque GD est une bibliothèque de traitement d'image intégrée en PHP, fournissant des fonctions riches pour traiter et manipuler les données d'image. Voici quelques exemples de fonctionnement communs.
$width = 400; // Largeur de l'image
$height = 200; // La hauteur de l'image
$image = imagecreatetruecolor($width, $height); // Créer une image vierge
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Définir la couleur de fond sur blanc
imagefill($image, 0, 0, $backgroundColor); // Remplissez la couleur d'arrière-plan
header('Content-type: image/png'); // installationHTTPLa sortie de l'en-tête estPNGImage de format
imagepng($image); // Image de sortie
imagedestroy($image); // Détruiser les ressources d'image
$sourceFile = 'source.jpg'; // Nom du fichier d'image source
$destinationFile = 'destination.png'; // Nom du fichier d'image cible
$sourceImage = imagecreatefromjpeg($sourceFile); // Chargement de l'image source
$imageWidth = imagesx($sourceImage); // Obtenez la largeur de l'image
$imageHeight = imagesy($sourceImage); // Obtenir la hauteur de l'image
$destinationImage = imagecreatetruecolor($imageWidth, $imageHeight); // Créer une image cible
header('Content-type: image/png'); // installationHTTPLa sortie de l'en-tête estPNGImage de format
imagepng($destinationImage, $destinationFile); // Enregistrer l'image cible
imagedestroy($sourceImage); // Détruisez les ressources d'image source
imagedestroy($destinationImage); // Détruisez les ressources d'image cible
$sourceFile = 'source.jpg'; // Nom du fichier d'image source
$destinationFile = 'destination.jpg'; // Nom du fichier d'image cible
$destinationWidth = 300; // Largeur d'image cible
$destinationHeight = 200; // Hauteur de l'image cible
$sourceImage = imagecreatefromjpeg($sourceFile); // Chargement de l'image source
$sourceWidth = imagesx($sourceImage); // Obtenez la largeur de l'image source
$sourceHeight = imagesy($sourceImage); // Obtenez la hauteur de l'image source
$destinationImage = imagecreatetruecolor($destinationWidth, $destinationHeight); // Créer une image cible
imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $destinationWidth, $destinationHeight, $sourceWidth, $sourceHeight); // Zoomer l'image source sur l'image cible
header('Content-type: image/jpeg'); // installationHTTPLa sortie de l'en-tête estJPEGImage de format
imagejpeg($destinationImage, $destinationFile); // Enregistrer l'image cible
imagedestroy($sourceImage); // Détruisez les ressources d'image source
imagedestroy($destinationImage); // Détruisez les ressources d'image cible
En plus de la bibliothèque GD, PHP peut également utiliser la bibliothèque ImageMagick pour le traitement d'image. ImageMagick est plus puissant et adapté aux opérations complexes sur les images. Voici un exemple simple.
$sourceFile = 'source.jpg'; // Nom du fichier d'image source
$destinationFile = 'destination.jpg'; // Nom du fichier d'image cible
$destinationWidth = 300; // Largeur d'image cible
$destinationHeight = 200; // Hauteur de l'image cible
$imagick = new Imagick($sourceFile); // Chargement de l'image source
$sourceWidth = $imagick->getImageWidth(); // Obtenez la largeur de l'image source
$sourceHeight = $imagick->getImageHeight(); // Obtenez la hauteur de l'image source
$imagick->cropThumbnailImage($destinationWidth, $destinationHeight); // Échelle l'image source à la taille cible
$imagick->writeImage($destinationFile); // Enregistrer l'image cible
$imagick->destroy(); // Détruiser les ressources d'image
L'exemple ci-dessus montre comment utiliser la bibliothèque GD et la bibliothèque ImageMagick en PHP pour traiter les images de manière flexible. Qu'il s'agisse de créer de nouvelles images, de charger et d'économiser, de recadrer et de faire une mise à l'échelle, les deux bibliothèques peuvent répondre à différents besoins. Selon la situation réelle du projet, sélectionnez simplement la bibliothèque appropriée pour le développement.