diff options
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); } |