Jeg prøvede lige at rette desc's løsning til, så den acceptere png, jpeg, jpg og gif.
<?php
//http://www.eksperten.dk/spm/763355
function flipHorizontal($input)
{
$ext = strtolower(end(explode('.',$input)));
switch($ext)
{
case 'png':
$img = imagecreatefrompng($input);
break;
case 'jpg':
case 'jpeg':
$img = imagecreatefromjpeg($input);
break;
case 'gif':
$img = imagecreatefromgif($input);
break;
default:
die("Unable to flip image - wrong extension");
}
$size_x = imagesx($img);
$size_y = imagesy($img);
$temp = imagecreatetruecolor($size_x, $size_y);
$x = imagecopyresampled($temp, $img, 0, 0, ($size_x-1), 0, $size_x, $size_y, 0-$size_x, $size_y);
if($x)
{
switch($ext)
{
case 'png':
header("Content-type: image/png");
imagepng($temp);
break;
case 'jpg':
case 'jpeg':
header("Content-type: image/jpeg");
imagejpeg($temp,'',90);
break;
case 'gif':
header("Content-type: image/gif");
imagegif($temp);
break;
default:
die("Unable to flip image - wrong extension");
}
}
else
{
die("Unable to flip image");
}
}
flipHorizontal('
http://www.habbo.dk/habbo-imaging/avatar/8530418018255052850230005014400518a8123a77f7e4c686d49c864dbc5f9.gif');
?>
Den har dog også problemet med trans-color!
Jeg prøvede med et hack at rette det på følgende måde:
case 'gif':
header("Content-type: image/gif");
$trans_color = imagecolorallocate($temp, 0, 0, 0);
imagecolortransparent($temp, $trans_color);
imagegif($temp);
break;
Men så forsvinder alle sorte farver! :o(