ScotlandPHP 2016

imageflip

(PHP 5 >= 5.5.0, PHP 7)

imageflipRetourne une image en utilisant le mode fourni

Description

bool imageflip ( resource $image , int $mode )

Retourne l'image image en utilisant le mode fourni.

Liste de paramètres

image

Une ressource d'image, 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.

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);
?>

L'exemple ci-dessus va afficher quelque chose de 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);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Sortie de l'exemple : Image retournée horizontalement

Notes

Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

add a note add a note

User Contributed Notes 1 note

up
0
Daniel Klein
6 months 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