From 28f56772470b876ca824f69e99c794cc5d50b290 Mon Sep 17 00:00:00 2001 From: Will Franklin Date: Thu, 24 Aug 2023 15:41:24 +0100 Subject: [PATCH] Rotate JPEG images if they have an Orientation tag --- .../image/image.controller.php | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/content-controllers/image/image.controller.php b/content-controllers/image/image.controller.php index d325d8d..3219c9b 100644 --- a/content-controllers/image/image.controller.php +++ b/content-controllers/image/image.controller.php @@ -24,8 +24,26 @@ class ImageController implements ContentController case 17: $ext = 'ico';break; // ico case 18: $ext = 'webp';break; // webp - case 2: //we clean up exif data of JPGs so GPS and other data is removed + case 2: + //we clean up exif data of JPGs so GPS and other data is removed $res = imagecreatefromjpeg($tmpfile); + + // rotate based on EXIF Orientation + $exif = exif_read_data($tmpfile); + if (!empty($exif['Orientation'])) { + switch ($exif['Orientation']) { + case 3: + $res = imagerotate($res, 180, 0); + break; + case 6: + $res = imagerotate($res, -90, 0); + break; + case 8: + $res = imagerotate($res, 90, 0); + break; + } + } + imagejpeg($res, $tmpfile, (defined('JPEG_COMPRESSION')?JPEG_COMPRESSION:90)); $ext = 'jpg'; break;