From ce454dfe7763fce15ef97a73981767a7d3855a2f Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Wed, 17 Feb 2010 17:06:05 -0500 Subject: [PATCH] Throw exception if Imagick extension not available, don't throw exception if no image data when getting dimensions, just return 0x0 --- framework/Image/lib/Horde/Image/Imagick.php | 40 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/framework/Image/lib/Horde/Image/Imagick.php b/framework/Image/lib/Horde/Image/Imagick.php index 29b81254a..cf5962752 100644 --- a/framework/Image/lib/Horde/Image/Imagick.php +++ b/framework/Image/lib/Horde/Image/Imagick.php @@ -51,26 +51,27 @@ class Horde_Image_Imagick extends Horde_Image_Base */ public function __construct($params, $context = array()) { - parent::__construct($params, $context); - if (Horde_Util::loadExtension('imagick')) { - ini_set('imagick.locale_fix', 1); - $this->_imagick = new Imagick(); - if (!empty($params['filename'])) { - $this->loadFile($params['filename']); - } elseif(!empty($params['data'])) { - $this->loadString(md5($params['data']), $params['data']); - } else { - $this->_width = max(array($this->_width, 1)); - $this->_height = max(array($this->_height, 1)); - try { - $this->_imagick->newImage($this->_width, $this->_height, $this->_background); - } catch (ImagickException $e) { - throw new Horde_Image_Exception($e); - } + if (!Horde_Util::loadExtension('imagick')) { + throw new Horde_Image_Exception('Required PECL Imagick extension not found.'); + } + parent::__construct($params, $context); + ini_set('imagick.locale_fix', 1); + $this->_imagick = new Imagick(); + if (!empty($params['filename'])) { + $this->loadFile($params['filename']); + } elseif(!empty($params['data'])) { + $this->loadString(md5($params['data']), $params['data']); + } else { + $this->_width = max(array($this->_width, 1)); + $this->_height = max(array($this->_height, 1)); + try { + $this->_imagick->newImage($this->_width, $this->_height, $this->_background); + } catch (ImagickException $e) { + throw new Horde_Image_Exception($e); } - - $this->_imagick->setImageFormat($this->_type); } + + $this->_imagick->setImageFormat($this->_type); } /** @@ -175,7 +176,8 @@ class Horde_Image_Imagick extends Horde_Image_Base try { $size = $this->_imagick->getImageGeometry(); } catch (ImagickException $e) { - throw new Horde_Image_Exception($e); + return array('width' => 0, 'height' => 0); + //throw new Horde_Image_Exception($e); } $this->_height = $size['height']; -- 2.11.0