+ switch($handler) {
+
+ case 'gd':
+
+ /* grabs the height and width */
+ $cur_width = imagesx($src_img);
+ $cur_height = imagesy($src_img);
+
+ // If requested width is more then the actual image width,
+ // do not generate a thumbnail, instead safe the original
+ // as thumbnail but with lower quality. But if the image
+ // is to heigh too, then we still have to resize it.
+ if($width >= $cur_width && $cur_height < $this->cfg->thumb_height) {
+ $result = imagejpeg($src_img, $thumb_image, 75);
+ imagedestroy($src_img);
+ return true;
+ }
+ break;
+
+ case 'imagick':
+
+ $cur_width = $src_img->getImageWidth();
+ $cur_height = $src_img->getImageHeight();
+
+ // If requested width is more then the actual image width,
+ // do not generate a thumbnail, instead safe the original
+ // as thumbnail but with lower quality. But if the image
+ // is to heigh too, then we still have to resize it.
+ if($width >= $cur_width && $cur_height < $this->cfg->thumb_height) {
+ $src_img->setCompressionQuality(75);
+ $src_img->setImageFormat('jpeg');
+ $src_img->writeImage($thumb_image);
+ $src_img->clear();
+ $src_img->destroy();
+ return true;
+ }
+ break;