La mise en miroir ou les effets symétriques sont une technique commune et artistique lors de l'exécution du traitement d'image. PHP fournit une fonction concise - ImageFlip () , qui peut facilement retourner horizontalement, verticalement ou simultanément, créant un effet artistique symétrique. Cet article vous guidera à travers l'utilisation de base de ImageFlip () et démontrera avec un exemple complet comment l'utiliser pour créer une image symétrique.
ImageFlip () est une fonction utilisée pour le retournement de l'image dans la bibliothèque GD de PHP. Sa syntaxe est la suivante:
bool imageflip(GdImage $image, int $mode)
$ Image : la ressource d'image à traiter.
MODE $ : MODE FLIP, qui peut être l'un des trois suivants:
IMG_FLIP_HORIZONTAL : Flip horizontalement (miroir à gauche et à droite).
IMG_FLIP_VERTICAL : Flip verticalement (refléter de haut en bas).
IMG_FLIP_BOTH : Flip horizontalement et verticalement en même temps.
Cette fonction est introduite à partir de PHP 5.5.0, alors assurez-vous que votre environnement de course le prend en charge.
Supposons que nous ayons une image et que nous voulons faire une image symétrique gauche-droite en retournant horizontalement, par:
Divisez l'image d'origine en moitié.
Copiez cette moitié de l'image.
Utilisez ImageFlip () pour retourner horizontalement.
Éplice la pièce inversée à côté de l'image d'origine pour créer un effet symétrique.
Voici un exemple de code PHP complet qui implémente l'opération ci-dessus:
<?php
// Chargez l'image d'origine
$sourcePath = 'https://m66.net/images/sample.jpg';
$sourceImage = imagecreatefromjpeg($sourcePath);
$width = imagesx($sourceImage);
$height = imagesy($sourceImage);
// Créez la moitié de la toile
$halfWidth = (int)($width / 2);
$halfImage = imagecreatetruecolor($halfWidth, $height);
// Copiez la moitié gauche
imagecopy($halfImage, $sourceImage, 0, 0, 0, 0, $halfWidth, $height);
// Créer une copie inversée
$flippedHalf = imagecreatetruecolor($halfWidth, $height);
imagecopy($flippedHalf, $halfImage, 0, 0, 0, 0, $halfWidth, $height);
imageflip($flippedHalf, IMG_FLIP_HORIZONTAL);
// Créer une nouvelle toile,Utilisé pour placer des images symétriques
$symmetryImage = imagecreatetruecolor($width, $height);
// Fusionner la moitié gauche d'origine et retourner la moitié droite
imagecopy($symmetryImage, $halfImage, 0, 0, 0, 0, $halfWidth, $height);
imagecopy($symmetryImage, $flippedHalf, $halfWidth, 0, 0, 0, $halfWidth, $height);
// Sortie vers le navigateur
header('Content-Type: image/jpeg');
imagejpeg($symmetryImage);
// Nettoyer les ressources
imagedestroy($sourceImage);
imagedestroy($halfImage);
imagedestroy($flippedHalf);
imagedestroy($symmetryImage);
?>
Après avoir exécuté le code ci-dessus, vous obtiendrez une image symétrique à gauche et à droite. Par exemple, si l'image originale est un portrait d'un personnage, l'image de sortie montrera un "visage miroir" parfaitement symétrique, qui est très artistique.
Si vous souhaitez réaliser une symétrie de haut en bas, remplacez simplement IMG_FLIP_HORIZONTAL par IMG_FLIP_VERTICAL .
Le traitement d'image ImageFlip () est effectué en place, il est donc recommandé de copier l'image d'origine, puis de le traiter pour éviter de modifier le fichier source.
ImageCreateFromJPEG () peut également être remplacé par ImageCreateFrommpng () ou ImageCreateFromGif () , en fonction de votre format d'image.
ImageFlip () est un outil de traitement d'image PHP extrêmement pratique. Avec les fonctions de base de la bibliothèque GD de base, vous pouvez facilement réaliser divers effets artistiques symétriques, adaptés à des scènes telles que le traitement des avatar, des images créatives, des jeux de puzzle et même la génération de matériaux visuels d'IA. La prochaine fois que vous voudrez ajouter un peu de "magie miroir" à votre image, essayez-le!