Position actuelle: Accueil> Derniers articles> Comment utiliser ImageFlip () et ImagesCale () pour recadrer conjointement et flip pour le traitement personnalisé des effets d'image?

Comment utiliser ImageFlip () et ImagesCale () pour recadrer conjointement et flip pour le traitement personnalisé des effets d'image?

M66 2025-06-12

Le traitement des images en PHP est une compétence puissante, surtout si vous souhaitez automatiser l'édition d'images ou créer des fonctionnalités de traitement d'image telles que le recadrage d'avatar, la génération de vignettes ou l'embellissement d'image. Cet article présentera comment utiliser ImageFlip () et ImagesCale () deux fonctions de bibliothèque GD pour recadrer, échelle et flip pour obtenir un traitement personnalisé d'effet d'image.

1. Préparez l'environnement

Avant de commencer, assurez-vous que la bibliothèque GD est activée dans votre environnement PHP. Vous pouvez vérifier en exécutant le code suivant:

 if (extension_loaded('gd')) {
    echo "GD Activé";
} else {
    echo "Veuillez activer GD Étendu";
}

2. Chargez l'image

Prenons une image JPEG comme exemple et chargez-la d'abord en mémoire:

 $imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);

3. Cramez l'image (facultative)

Supposons que nous voulons recadrer la zone 200x200 au centre de l'image d'origine, nous pouvons utiliser ImageCrop () :

 $cropWidth = 200;
$cropHeight = 200;

$width = imagesx($image);
$height = imagesy($image);

$cropX = ($width - $cropWidth) / 2;
$cropY = ($height - $cropHeight) / 2;

$croppedImage = imagecrop($image, [
    'x' => $cropX,
    'y' => $cropY,
    'width' => $cropWidth,
    'height' => $cropHeight
]);

4. Zoom de l'image

Utilisez ImagesCale () pour mettre à l'échelle l'image, par exemple, réduisez l'image à 100x100:

 $scaledImage = imagescale($croppedImage, 100, 100);

Vous ne pouvez également fournir que des largeurs et évoluer automatiquement la hauteur à l'échelle:

 $scaledImage = imagescale($croppedImage, 100);

5. Flip l'image

Ensuite, utilisez ImageFlip () pour retourner l'image horizontalement ou verticalement:

 // Flip horizontal
imageflip($scaledImage, IMG_FLIP_HORIZONTAL);

// Flip vertical(Non-comment au-dessus,Essayez d'utiliser cette ligne à la place)
// imageflip($scaledImage, IMG_FLIP_VERTICAL);

Vous pouvez également utiliser img_flip_both pour retourner horizontalement et verticalement en même temps.

6. Sortir ou enregistrer l'image

Vous pouvez sortir l'image traitée au navigateur:

 header('Content-Type: image/jpeg');
imagejpeg($scaledImage);
imagedestroy($scaledImage);

Ou enregistrer dans le fichier sur le serveur:

 imagejpeg($scaledImage, '/var/www/m66.net/public/processed.jpg');

résumé

En utilisant ImageFlip () et ImagesCale () en combinaison, vous pouvez traiter de manière flexible les images et la combinaison d'imageCrop () peut obtenir des effets de personnalisation d'images plus complexes. Ceci est très utile pour fabriquer des éditeurs d'image, des modules de traitement des avatar utilisateur ou des systèmes d'affichage de contenu.

N'oubliez pas, n'oubliez pas d'utiliser iMageStroy () pour libérer de la mémoire pour toutes les ressources d'image traitées pour assurer l'efficacité du script et la version des ressources:

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

J'espère que cet article vous sera utile sur la route du traitement d'image PHP! Si vous êtes également intéressé par d'autres fonctions de traitement d'image, veuillez continuer à explorer plus de fonctionnalités de la bibliothèque GD.