diff options
author | plegall <plg@piwigo.org> | 2012-04-01 00:02:36 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2012-04-01 00:02:36 +0000 |
commit | 2ec7183adb37f910f96b29ed148ca6ae2bc385b9 (patch) | |
tree | c20d0873a06233f15f039848457265d1d96936ea /admin/include/image.class.php | |
parent | 3a76852f0ce5573585fd70623321d8cb7e736ab3 (diff) |
feature 2604: support rotation on derivatives
git-svn-id: http://piwigo.org/svn/trunk@13843 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin/include/image.class.php')
-rw-r--r-- | admin/include/image.class.php | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/admin/include/image.class.php b/admin/include/image.class.php index 30e62de1d..61b1ab277 100644 --- a/admin/include/image.class.php +++ b/admin/include/image.class.php @@ -238,7 +238,7 @@ class pwg_image return null; } - $rotation = null; + $rotation = 0; $exif = exif_read_data($source_filepath); @@ -262,6 +262,28 @@ class pwg_image return $rotation; } + static function get_rotation_code_from_angle($rotation_angle) + { + switch($rotation_angle) + { + case 0: return 0; + case 90: return 1; + case 180: return 2; + case 270: return 3; + } + } + + static function get_rotation_angle_from_code($rotation_code) + { + switch($rotation_code) + { + case 0: return 0; + case 1: return 90; + case 2: return 180; + case 3: return 270; + } + } + /** Returns a normalized convolution kernel for sharpening*/ static function get_sharpen_matrix($amount) { @@ -423,11 +445,15 @@ class image_imagick implements imageInterface function resize($width, $height) { $this->image->setInterlaceScheme(Imagick::INTERLACE_LINE); - if ($this->get_width()%2 == 0 && $this->get_height()%2 == 0 - && $this->get_width() > 3*$width) + + // TODO need to explain this condition + if ($this->get_width()%2 == 0 + && $this->get_height()%2 == 0 + && $this->get_width() > 3*$width) { $this->image->scaleImage($this->get_width()/2, $this->get_height()/2); } + return $this->image->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 0.9); } |