PHP Conference Nagoya 2025

imageflip

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

imageflipFlips an image using a given mode

Descripción

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

Voltea la imagen dada por image usando el modo dado por mode.

Parámetros

image

Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().

mode

Modo de volteo; puede ser una de las constantes IMG_FLIP_*:

Constante Significado
IMG_FLIP_HORIZONTAL Voltea la imagen horizontalmente.
IMG_FLIP_VERTICAL Voltea la imagen verticalmente.
IMG_FLIP_BOTH Voltea la imagen tanto horizontal como verticalmente.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Voltea una imagen verticalmente

Este ejemplo utiliza la constante IMG_FLIP_VERTICAL.

<?php
// Fichero
$nombre_fichero = 'phplogo.png';

// Tipo de contenido
header('Content-type: image/png');

// Cargar
$im = imagecreatefrompng($nombre_fichero);

// Voltearla verticalmente
imageflip($im, IMG_FLIP_VERTICAL);

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

El resultado del ejemplo sería algo similar a:

Salida del ejemplo: Imagen volteada verticalmente

Ejemplo #2 Voltea la imagen horizontalmente

Este ejemplo utiliza la constante IMG_FLIP_HORIZONTAL.

<?php
// Fichero
$nombre_fichero = 'phplogo.png';

// Tipo de contenido
header('Content-type: image/png');

// Cargar
$im = imagecreatefrompng($nombre_fichero);

// Voltearla horizontalmente
imageflip($im, IMG_FLIP_HORIZONTAL);

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

El resultado del ejemplo sería algo similar a:

Salida del ejemplo: Imagen volteada horizontalmente

add a note

User Contributed Notes 1 note

up
4
Daniel Klein
8 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