Position actuelle: Accueil> Derniers articles> Comment maintenir son rapport d'aspect d'origine après le retournement d'une image?

Comment maintenir son rapport d'aspect d'origine après le retournement d'une image?

gitbox 2025-05-27

Dans PHP, la fonction ImageFlip () est un outil de traitement d'image très utile, qui peut aider les développeurs à retourner les images. Les flips courants comprennent un retournement horizontal, un flip vertical et un flip à deux directions. Il est souvent largement utilisé dans le traitement d'image, l'édition et la génération dynamique des images. Cependant, lors du retournement d'une image, nous pouvons vouloir maintenir la largeur et le rapport de hauteur d'origine de l'image inchangée pour éviter les effets d'étirement ou de compression non naturels de l'image en raison de l'opération de retournement.

Cet article expliquera comment utiliser la fonction imageflip () pour s'assurer que le rapport d'aspect de l'image est toujours cohérent lors du retournement d'une image.

1. Introduction à la fonction php imageflip ()

ImageFlip () est une fonction de traitement d'image en PHP qui retourne les images. Sa syntaxe de base est la suivante:

 bool imageflip(resource $image, int $mode)

Description du paramètre:

  • $ Image : La ressource d'image à utiliser est généralement une ressource d'image créée via des fonctions telles que ImageCreateFromJPEG () , ImageCreateFrommpng () , etc.

  • Mode $ : mode retourné. Les valeurs facultatives incluent:

    • IMG_FLIP_HORIZONTAL : Flip horizontalement.

    • IMG_FLIP_VERTICAL : Flip verticalement.

    • IMG_FLIP_BOTH : Flip horizontalement et verticalement en même temps.

2. Comment maintenir le rapport d'aspect d'une image

Lorsque vous utilisez la fonction imageflip () , PHP conservera le rapport d'aspect d'origine de l'image par défaut et ne provoquera aucune déformation de l'image. Il convient de noter, cependant, que dans certains cas (par exemple, lorsque la taille de l'image est plus grande), l'image inversée peut être affichée dans un conteneur différent qui n'a pas nécessairement la même taille que l'image d'origine. Par conséquent, nous devons effectuer un traitement supplémentaire pour nous assurer que l'image maintient toujours le rapport d'aspect constant.

Étapes de mise en œuvre:

  • Obtenez la taille d'origine de l'image : Avant de retourner, obtenez d'abord la largeur et la hauteur d'origine de l'image via les fonctions imagesx () et images () .

  • Effectuez un fonctionnement Flip : utilisez ImageFlip () pour retourner l'image.

  • Redimensionner les conteneurs : où l'image doit être affichée, assurez-vous que la taille du conteneur correspond au rapport d'aspect de l'image. Si l'image est intégrée dans une page Web, la taille du conteneur peut être contrôlée par CSS.

3. Implémentez des exemples de code

Voici un exemple de code simple qui utilise la fonction imageflip () pour retourner l'image horizontalement et maintenir le rapport d'aspect d'origine:

 <?php
// Chargement de l&#39;image
$imagePath = "path_to_your_image.jpg";
$image = imagecreatefromjpeg($imagePath);

// Obtenez la largeur et la hauteur d&#39;origine
$originalWidth = imagesx($image);
$originalHeight = imagesy($image);

// Flipe l&#39;image
imageflip($image, IMG_FLIP_HORIZONTAL);

// Créer une nouvelle ressource d&#39;image,Maintenir le rapport d&#39;aspect d&#39;origine
$newImage = imagecreatetruecolor($originalWidth, $originalHeight);

// Copiez l&#39;image inversée dans une nouvelle ressource d&#39;image
imagecopy($newImage, $image, 0, 0, 0, 0, $originalWidth, $originalHeight);

// Image de sortie
header('Content-Type: image/jpeg');
imagejpeg($newImage);

// Détruiser les ressources d&#39;image
imagedestroy($image);
imagedestroy($newImage);
?>

Description du code:

  1. Chargement de l'image : utilisez ImageCreateFromJPEG () pour charger des images JPEG.

  2. Obtenez des dimensions : obtenez la largeur et la hauteur de l'image d'origine via imagesx () et imagesy () .

  3. Flip l'image : utilisez la fonction imageflip () pour retourner horizontalement (peut également utiliser IMG_FLIP_VERTICAL pour le flip vertical, ou img_flip_both pour le flip bidirectionnel).

  4. Créez une nouvelle image : utilisez la fonction ImageCreateTrueColor () pour créer une nouvelle ressource d'image pour vous assurer que la taille de la nouvelle image est cohérente avec l'image d'origine.

  5. Image de sortie : utilisez ImageJPEG () pour sortir l'image inversée vers le navigateur.

  6. Détruiser les ressources de l'image : la fonction IMAgestroy () est utilisée pour libérer des ressources d'image pour éviter les fuites de mémoire.

4. Choses à noter

  • Lorsque vous utilisez ImageFlip () , PHP conservera automatiquement le rapport d'aspect de l'image et ne provoquera pas la déformation de l'image.

  • Après avoir retourné l'image, si l'image doit être intégrée dans HTML, assurez-vous que le style CSS de son conteneur (tel que la largeur et la hauteur) est cohérent avec la taille réelle de l'image.

5. Résumé

Grâce à la fonction ImageFlip () , nous pouvons facilement implémenter le fonctionnement FLIP d'image. Afin de garder la largeur et le rapport de hauteur d'origine de l'image inchangés, nous avons juste besoin de nous assurer que la taille du conteneur de l'image est cohérente avec l'image d'origine après le retournement. En PHP, le fonctionnement des images de retournement est très simple, mais afin d'obtenir le meilleur effet d'affichage, la gestion de la taille de l'image et le contrôle des conteneurs sont également des points clés à qui il faut prêter attention.


La dernière partie (non liée au contenu de l'article)