From a28d3b594b089af837c6a319d7b7b6a8f7155210 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sun, 18 Jan 2015 23:15:52 +0100 Subject: [PATCH] Fix exif orientation for flipped images fixes #13363 Links: * http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ * Example data: https://github.com/recurser/exif-orientation-examples --- lib/private/image.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/private/image.php b/lib/private/image.php index 07cfb0f72d..90b024de3d 100644 --- a/lib/private/image.php +++ b/lib/private/image.php @@ -358,35 +358,42 @@ class OC_Image { $o = $this->getOrientation(); $this->logger->debug('OC_Image->fixOrientation() Orientation: ' . $o, array('app' => 'core')); $rotate = 0; + $flip = false; switch ($o) { case -1: return false; //Nothing to fix case 1: $rotate = 0; break; - case 2: // Not tested + case 2: $rotate = 0; + $flip = true; break; case 3: $rotate = 180; break; - case 4: // Not tested + case 4: $rotate = 180; + $flip = true; break; - case 5: // Not tested + case 5: $rotate = 90; + $flip = true; break; case 6: - //$rotate = 90; $rotate = 270; break; - case 7: // Not tested + case 7: $rotate = 270; + $flip = true; break; case 8: $rotate = 90; break; } + if($flip) { + imageflip($this->resource, IMG_FLIP_HORIZONTAL); + } if ($rotate) { $res = imagerotate($this->resource, $rotate, 0); if ($res) {