Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction d'imagecrop de PHP pour recadrer une image carrée? Étapes et exemple explications

Comment utiliser la fonction d'imagecrop de PHP pour recadrer une image carrée? Étapes et exemple explications

gitbox 2025-06-09

Comment utiliser la fonction d'imagecrop de PHP pour recadrer une image carrée? Étapes et exemple explications

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.

1. Préparation

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.

2. Obtenez des ressources d'image

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.

3. Calculez la zone courte

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;

4. Cramez l'image en utilisant l'imagecrop

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);

5. Sortir l'image recadrée

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');

6. Nettoyer les ressources

Enfin, n'oubliez pas de libérer des ressources d'image pour éviter les fuites de mémoire:

 imagedestroy($image);
imagedestroy($croppedImage);

Exemple de code complet

 <?php
// Chargement des images
$image = imagecreatefromjpeg('your-image.jpg');

// Obtenez la largeur de l&#39;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&#39;é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);
?>

7. Conclusion

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.