From eaa3fb3f863b4cec711fec01f09b38a1ab333eef Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 14 Mar 2013 16:19:11 -0700 Subject: Image rotation for emblems. --- images/marks/rotate.php | 64 +++++++++++++++++++++++++++++++++++++++++++++++++ images/rotate.php | 20 ---------------- 2 files changed, 64 insertions(+), 20 deletions(-) create mode 100644 images/marks/rotate.php delete mode 100644 images/rotate.php diff --git a/images/marks/rotate.php b/images/marks/rotate.php new file mode 100644 index 0000000..9b0a3fe --- /dev/null +++ b/images/marks/rotate.php @@ -0,0 +1,64 @@ + 0) OR !($rotate < 4)) exit; + +$emblem = $_GET['emblem']; +$degrees = $_GET['r'] * 90; + +// Content type +header('Content-type: image/jpeg'); +//TODO Add cache + +$simage = @imagecreatefrompng($emblem); +if(!$simage) { + exit; +} + +$background = imagecolorallocate($simage, 0, 0, 0); +//$simage = rotateMaintain($simage, $degrees, $background); +$simage = imagerotate($simage, $degrees, 0); +// removing the black from the placeholder +imagecolortransparent($simage, $background); +// turning off alpha blending (to ensure alpha channel information +// is preserved, rather than removed (blending with the rest of the +// image in the form of black)) +imagealphablending($simage, false); +// turning on alpha channel information saving (to ensure the full range +// of transparency is preserved) +imagesavealpha($simage, true); +imagepng($simage); + + + +//Couldn't do this and maintain transparency ? +function rotateMaintain($img1, $angle, $background) { + $width_before = imagesx($img1); + + $height_before = imagesy($img1); + $img1 = imagerotate($img1, $angle, $background); + + //but imagerotate scales, so we clip to the original size + $img2 = @imagecreatetruecolor($width_before, $height_before); + $new_width = imagesx($img1); // whese dimensions are + $new_height = imagesy($img1);// the scaled ones (by imagerotate) + imagecopyresampled( + $img2, $img1, + 0, 0, + ($new_width-$width_before)/2, + ($new_height-$height_before)/2, + $width_before, + $height_before, + $width_before, + $height_before + ); + return $img2; +} + + + + + +?> \ No newline at end of file diff --git a/images/rotate.php b/images/rotate.php deleted file mode 100644 index ae0df87..0000000 --- a/images/rotate.php +++ /dev/null @@ -1,20 +0,0 @@ - \ No newline at end of file -- cgit v1.2.3