Lors du retournement des images à l'aide de la fonction ImageFlip de PHP, vous pouvez rencontrer une zone vide une fois l'image renversée. Ce problème est généralement dû au fait que la taille de l'image n'est pas ajustée, ce qui fait que l'image inversée n'est pas complètement adaptée dans la toile d'origine. Cet article présentera comment utiliser la fonction ImageFlip pour retourner l'image et éviter les zones vides après flip.
PHP fournit une fonction intégrée ImageFlip qui peut être utilisée pour retourner les images horizontalement ou verticalement. La syntaxe de base de cette fonction est la suivante:
bool imageflip(resource $image, int $mode);
$ Image est la ressource d'image à retourner.
Le mode $ est un motif inversé, qui peut être les suivants:
IMG_FLIP_HORIZONTAL : Flip horizontalement.
IMG_FLIP_VERTICAL : Flip verticalement.
Img_flip_both : flip horizontalement et verticalement.
La fonction ImageFlip modifiera directement la ressource d'image et renverra une valeur booléenne pour indiquer si l'opération est réussie.
Lorsque nous utilisons la fonction ImageFlip pour retourner l'image, l'image inversée a souvent une zone vide. En effet, l'opération de flip ne redimensionne pas automatiquement la toile de l'image, de sorte que l'image inversée peut dépasser la frontière du canevas d'origine, laissant des zones vides.
Par exemple, les images qui sont inversées horizontalement peuvent être recadrées ou laisser des zones vides qui ne peuvent pas être remplies. Pour résoudre ce problème, nous devons effectuer des ajustements de canevas avant et après le fonctionnement du flip.
Pour résoudre le problème des zones vides après le retournement, nous devons ajuster la taille de la toile de l'image à travers les étapes suivantes:
Obtenez la largeur et la hauteur de l'image :
Tout d'abord, nous devons connaître la largeur et la hauteur de l'image d'origine. Cela peut être obtenu via les fonctions imagesx et images .
Créez une nouvelle toile :
Ajustez la nouvelle taille de toile en fonction de la façon dont l'image est retournée. S'il s'agit d'un retournement horizontal, la largeur restera la même et la hauteur peut changer. S'il est retourné verticalement, la hauteur reste la même et la largeur peut changer.
Effectuer l'opération Flip :
Utilisez la fonction ImageFlip pour retourner l'image.
Redimensionner la toile :
Utilisez des fonctions d' image-échantillonnage ou d'imagecopie pour copier l'image inversée dans une nouvelle toile, en vous assurant que l'image n'a pas de zones vides.
Voici un exemple de code complet montrant comment éviter les zones vides après le retournement:
<?php
// Chargement de l'image
$image = imagecreatefromjpeg('path_to_your_image.jpg');
// Obtenez la largeur et la hauteur de l'image d'origine
$width = imagesx($image);
$height = imagesy($image);
// Créer une nouvelle toile
$new_image = imagecreatetruecolor($width, $height);
// Effectuer un flip horizontal
imageflip($image, IMG_FLIP_HORIZONTAL);
// Copiez l'image inversée dans une nouvelle toile
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $width, $height);
// Enregistrer de nouvelles images
imagejpeg($new_image, 'flipped_image.jpg');
// Nettoyez la mémoire
imagedestroy($image);
imagedestroy($new_image);
echo "Flip d'image avec succès!";
?>
Dans le code ci-dessus, nous chargeons d'abord une image, puis obtenons la largeur et la hauteur de l'image. Ensuite, nous créons une nouvelle toile et retournons l'image d'origine horizontalement. Avec la fonction de résumé de l'imagecopy , nous dessinons l'image inversée dans une nouvelle toile, garantissant qu'il n'y a pas de zones vides. Enfin, nous avons enregistré l'image inversée et nettoyé la mémoire.
En plus du flip horizontal, ImageFlip prend également en charge le flip vertical et les flips horizontaux et verticaux simultanés. Vous pouvez ajuster le paramètre Mode $ selon les besoins:
Flip vertical :
imageflip($image, IMG_FLIP_VERTICAL);
Flip horizontalement et verticalement simultanément :
imageflip($image, IMG_FLIP_BOTH);
Avec la solution ci-dessus, vous pouvez éviter les zones vierges lors du retournement des images à l'aide de la fonction ImageFlip . Lors du retournement de l'image, assurez-vous d'ajuster la taille de la toile et la position de l'image pour vous assurer que l'image est entièrement adaptée à la nouvelle toile. De cette façon, vous pouvez facilement retourner l'image et maintenir son intégrité.
J'espère que cet article vous aide! Si vous avez plus de questions, n'hésitez pas à poser des questions.