note 118774 added to function.imageflip
| From: | DanielKlein | Date: | Thu, 04 Feb 2016 01:26:17 +0000 |
| Subject: | note 118774 added to function.imageflip | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-204843@lists.php.net to get a copy of this message | ||
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);
}
}
?>
----
Server IP: 72.52.91.14
Probable Submitter: 49.183.183.104
----
Manual Page -- http://php.net/manual/en/function.imageflip.php
Edit -- https://master.php.net/note/edit/118774
Del: integrated -- https://master.php.net/note/delete/118774/integrated
Del: useless -- https://master.php.net/note/delete/118774/useless
Del: bad code -- https://master.php.net/note/delete/118774/bad+code
Del: spam -- https://master.php.net/note/delete/118774/spam
Del: non-english -- https://master.php.net/note/delete/118774/non-english
Del: in docs -- https://master.php.net/note/delete/118774/in+docs
Del: other reasons-- https://master.php.net/note/delete/118774
Reject -- https://master.php.net/note/reject/118774
Search -- https://master.php.net/manage/user-notes.php