Les images de recadrage sont l'une des opérations communes lors de l'utilisation de PHP pour le traitement d'image. PHP fournit de nombreuses fonctions de traitement d'image, où la fonction d'imagecrop peut être utilisée pour recadrer des images. Dans cet article, nous nous concentrerons sur la façon d'utiliser la fonction ImageCrop pour recadrer une image carrée. Nous démontrerons également l'ensemble du processus grâce à des exemples de code spécifiques.
Tout d'abord, assurez-vous que votre serveur a installé la bibliothèque GD, car ImageCrop est une fonction dans la bibliothèque GD. Si vous ne savez pas si la bibliothèque GD est installée, vous pouvez le vérifier avec la commande suivante:
php -m | grep gd
Si la sortie contient GD , la bibliothèque GD est installée. Sinon, vous devez l'installer et l'activer.
Avant de commencer à recadrer, nous devons d'abord charger l'image. Normalement, les ressources d'image sont obtenues via des fonctions telles que ImageCreateFromJPEG , ImageCreateFrommpng ou ImageCreatefromGif , selon votre format d'image. Par exemple, si vous souhaitez charger une image JPEG, vous pouvez utiliser le code suivant:
$image = imagecreatefromjpeg('your-image.jpg');
Cela renverra une ressource d'image que nous pouvons utiliser pendant le traitement ultérieur.
Afin de recadrer l'image en carré, nous devons d'abord calculer une zone carrée. Nous pouvons déterminer la zone de culture du carré par la largeur et la hauteur de l'image. Si la largeur de l'image est supérieure à la hauteur, nous sélectionnons la partie de l'image qui est la même que la hauteur de la largeur de l'image, et vice versa. Cela garantit que la zone de coupe est un carré.
Nous pouvons utiliser le code suivant pour obtenir les coordonnées et les dimensions de la zone courte:
$width = imagesx($image); // Obtenez la largeur de l'image
$height = imagesy($image); // Obtenez la hauteur de l'image
$minDimension = min($width, $height); // Choisissez le plus petit de largeur et de hauteur comme la longueur latérale du carré
// Calculez les coordonnées de démarrage des cultures
$startX = ($width - $minDimension) / 2;
$startY = ($height - $minDimension) / 2;
Maintenant que nous connaissons la position et la taille de la zone de recadrage, nous pouvons utiliser la fonction ImageCrop pour clipser. ImageCrop nécessite un objet ImageCrop , qui contient des informations telles que la largeur de la zone de culture, les coordonnées de démarrage, etc.
Voici le code pour recadrer une image en utilisant ImageCrop :
$cropRect = [
'x' => $startX,
'y' => $startY,
'width' => $minDimension,
'height' => $minDimension
];
$croppedImage = imagecrop($image, $cropRect);
Une fois le recadrage terminé, nous pouvons produire l'image recadrée via ImageJPEG (pour les images de format JPEG) ou ImagePng (pour les images de format PNG). Si vous souhaitez sortir l'image directement au navigateur, vous pouvez le faire:
header('Content-Type: image/jpeg');
imagejpeg($croppedImage);
Si vous souhaitez enregistrer l'image recadrée sur le serveur, vous pouvez spécifier le chemin du fichier:
imagejpeg($croppedImage, 'cropped-image.jpg');
Enfin, n'oubliez pas de libérer des ressources d'image pour éviter les fuites de mémoire:
imagedestroy($image);
imagedestroy($croppedImage);
<?php
// Chargement des images
$image = imagecreatefromjpeg('your-image.jpg');
// Obtenez la largeur de l'image和高度
$width = imagesx($image);
$height = imagesy($image);
// Calculez la taille de la zone courte
$minDimension = min($width, $height);
// Calculez les coordonnées de départ de la zone d'écrêtage
$startX = ($width - $minDimension) / 2;
$startY = ($height - $minDimension) / 2;
// Définir la zone des cultures
$cropRect = [
'x' => $startX,
'y' => $startY,
'width' => $minDimension,
'height' => $minDimension
];
// Crampons de recadrement
$croppedImage = imagecrop($image, $cropRect);
// Sortie des images recadrées
header('Content-Type: image/jpeg');
imagejpeg($croppedImage);
// Nettoyer les ressources
imagedestroy($image);
imagedestroy($croppedImage);
?>
Grâce aux étapes ci-dessus, nous pouvons facilement recadrer l'image en carrés en utilisant la fonction d'imagecrop de PHP. Lors de la recapture d'une image, nous devons calculer la zone recadrée en fonction de la taille de l'image d'origine pour nous assurer que l'image recadrée est un carré. De cette façon, PHP nous offre des capacités de traitement d'image simples et puissantes, ce qui rend le recadrage d'images plus flexible et pratique.
Si vous devez travailler davantage sur l'image, comme la mise à l'échelle ou la rotation, vous pouvez continuer à utiliser d'autres fonctions fournies par la bibliothèque GD. J'espère que ce tutoriel vous aidera à comprendre comment recadrer des images avec PHP.