From 4b7ce9dbec24839c218800b88b3212884059d53f Mon Sep 17 00:00:00 2001 From: Jan Niggemann Date: Mon, 23 Feb 2015 16:17:21 +0100 Subject: [PATCH] fixes regression in createthumb.php, adds readability --- createthumb.php | 48 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/createthumb.php b/createthumb.php index 28b40f8..0de3b96 100644 --- a/createthumb.php +++ b/createthumb.php @@ -124,23 +124,41 @@ else } // Rotate JPG pictures +// for more info on orientation see +// http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ + $degrees = 0; $flip = ''; -if ($get_filename_type == "JPG") -{ - if (function_exists('exif_read_data') && function_exists('imagerotate')) - { - $exif = exif_read_data($get_filename, 0, true); - if (isset($exif['IFD0']) && isset($exif['IFD0']['Orientation'])) - $ort = $exif['IFD0']['Orientation']; - else - $ort = 0; - // for more info on orientation see - // http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ - $ort2deg = array(3=>180, 4=>180, 5=>270, 6=>270, 7=>90, 8=>90); - $degrees = in_array($ort, $ort2deg) ? $ort2deg[$ort] : 0; - $ort2flip = array(2, 4, 5, 7); - $flip = in_array($ort, $flip2deg) ? 'vertical' : ''; +if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) { + if (function_exists('exif_read_data') && function_exists('imagerotate')) { + $exif = exif_read_data($_GET['filename'], 0, true); + $ort = $exif['IFD0']['Orientation']; + switch ($ort) { + case 3: // 180 rotate right + $degrees = 180; + break; + case 6: // 90 rotate right + $degrees = 270; + break; + case 8: // 90 rotate left + $degrees = 90; + break; + case 2: // flip vertical + $flip = 'vertical'; + break; + case 7: // flipped + $degrees = 90; + $flip = 'vertical'; + break; + case 5: // flipped + $degrees = 270; + $flip = 'vertical'; + break; + case 4: // flipped + $degrees = 180; + $flip = 'vertical'; + break; + } } }