imageflip

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageflipRetourne une image en utilisant le mode fourni

Description

imageflip(GdImage $image, int $mode): bool

Retourne l'image image en utilisant le mode fourni.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

mode

Mode de retournement ; peut-être une des constantes IMG_FLIP_* :

Constante Signification
IMG_FLIP_HORIZONTAL Retourne l'image horizontalement.
IMG_FLIP_VERTICAL Retourne l'image verticalement.
IMG_FLIP_BOTH Retourne l'image à la fois horizontalement et verticalement.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 image attend une instance de GdImage désormais; auparavant, une resource était attendu.

Exemples

Exemple #1 Retourne une image verticalement

Cet exemple utilise la constante IMG_FLIP_VERTICAL.

<?php
// Fichier
$filename 'phplogo.png';

// Type de contenu
header('Content-type: image/png');

// Chargement
$im imagecreatefrompng($filename);

// Retournement vertical
imageflip($imIMG_FLIP_VERTICAL);

// Affichage
imagejpeg($im);
imagedestroy($im);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple : Image retournée verticalement

Exemple #2 Retourne une image horizontalement

Cet exemple utilise la constante IMG_FLIP_HORIZONTAL.

<?php
// Fichier
$filename 'phplogo.png';

// Type de contenu
header('Content-type: image/png');

// Chargement
$im imagecreatefrompng($filename);

// Retournement horizontal
imageflip($imIMG_FLIP_HORIZONTAL);

// Affichage
imagejpeg($im);
imagedestroy($im);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple : Image retournée horizontalement

add a note add a note

User Contributed Notes 1 note

up
5
Daniel Klein
5 years ago
If you're using PHP < 5.5 you can use this code to add the same functionality. If you pass the wrong $mode in it will silently fail. You might want to add your own error handling for this case.

<?php
if (!function_exists('imageflip')) {
 
define('IMG_FLIP_HORIZONTAL', 0);
 
define('IMG_FLIP_VERTICAL', 1);
 
define('IMG_FLIP_BOTH', 2);

  function
imageflip($image, $mode) {
    switch (
$mode) {
      case
IMG_FLIP_HORIZONTAL: {
       
$max_x = imagesx($image) - 1;
       
$half_x = $max_x / 2;
       
$sy = imagesy($image);
       
$temp_image = imageistruecolor($image)? imagecreatetruecolor(1, $sy): imagecreate(1, $sy);
        for (
$x = 0; $x < $half_x; ++$x) {
         
imagecopy($temp_image, $image, 0, 0, $x, 0, 1, $sy);
         
imagecopy($image, $image, $x, 0, $max_x - $x, 0, 1, $sy);
         
imagecopy($image, $temp_image, $max_x - $x, 0, 0, 0, 1, $sy);
        }
        break;
      }
      case
IMG_FLIP_VERTICAL: {
       
$sx = imagesx($image);
       
$max_y = imagesy($image) - 1;
       
$half_y = $max_y / 2;
       
$temp_image = imageistruecolor($image)? imagecreatetruecolor($sx, 1): imagecreate($sx, 1);
        for (
$y = 0; $y < $half_y; ++$y) {
         
imagecopy($temp_image, $image, 0, 0, 0, $y, $sx, 1);
         
imagecopy($image, $image, 0, $y, 0, $max_y - $y, $sx, 1);
         
imagecopy($image, $temp_image, 0, $max_y - $y, 0, 0, $sx, 1);
        }
        break;
      }
      case
IMG_FLIP_BOTH: {
       
$sx = imagesx($image);
       
$sy = imagesy($image);
       
$temp_image = imagerotate($image, 180, 0);
       
imagecopy($image, $temp_image, 0, 0, 0, 0, $sx, $sy);
        break;
      }
      default: {
        return;
      }
    }
   
imagedestroy($temp_image);
  }
}
?>
To Top