From 112fafcc81ffd4d53f1bcc230f09e0bcc366983f Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 30 Sep 2012 03:25:20 -0700 Subject: [PATCH] consistent handling of scaled images when using imagick --- include/Photo.php | 49 ++++++++++++++++++++++++----------------------- mod/item.php | 1 + 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/include/Photo.php b/include/Photo.php index 4ab58369ec..25a2b70803 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -205,27 +205,6 @@ class Photo { if(!$this->is_valid()) return FALSE; - if($this->is_imagick()) { - /** - * If it is not animated, there will be only one iteration here, - * so don't bother checking - */ - // Don't forget to go back to the first frame - $this->image->setFirstIterator(); - do { - - // FIXME - implement horizantal bias for scaling as in followin GD functions - // to allow very tall images to be constrained only horizontally. - - $this->image->resizeImage($max, $max, imagick::FILTER_LANCZOS, 1, true); - } while ($this->image->nextImage()); - - // FIXME - also we need to copy the new dimensions to $this->height, $this->width as other functions - // may rely on it. - - return; - } - $width = $this->width; $height = $this->height; @@ -283,6 +262,28 @@ class Photo { } + if($this->is_imagick()) { + /** + * If it is not animated, there will be only one iteration here, + * so don't bother checking + */ + // Don't forget to go back to the first frame + $this->image->setFirstIterator(); + do { + + // FIXME - implement horizantal bias for scaling as in followin GD functions + // to allow very tall images to be constrained only horizontally. + + $this->image->scaleImage($dest_width, $dest_height); + } while ($this->image->nextImage()); + + // FIXME - also we need to copy the new dimensions to $this->height, $this->width as other functions + // may rely on it. + + return; + } + + $dest = imagecreatetruecolor( $dest_width, $dest_height ); imagealphablending($dest, false); imagesavealpha($dest, true); @@ -400,8 +401,6 @@ class Photo { if(!$this->is_valid()) return FALSE; - if($this->is_imagick()) - return $this->scaleImage($min); $width = $this->width; $height = $this->height; @@ -438,6 +437,8 @@ class Photo { } } + if($this->is_imagick()) + return $this->scaleImage($dest_width,$dest_height); $dest = imagecreatetruecolor( $dest_width, $dest_height ); imagealphablending($dest, false); @@ -460,7 +461,7 @@ class Photo { if($this->is_imagick()) { $this->image->setFirstIterator(); do { - $this->image->resizeImage($dim, $dim, imagick::FILTER_LANCZOS, 1, false); + $this->image->scaleImage($dim, $dim); } while ($this->image->nextImage()); return; } diff --git a/mod/item.php b/mod/item.php index 712174b0ae..de6bce972c 100644 --- a/mod/item.php +++ b/mod/item.php @@ -994,6 +994,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { intval($tagcid), intval($profile_uid) ); + } else { $newname = str_replace('_',' ',$name); -- 2.39.5