Overview

Packages

  • Image
  • None

Classes

  • Horde_Image
  • Horde_Image_Base
  • Horde_Image_Effect
  • Horde_Image_Effect_Border
  • Horde_Image_Effect_Gd_DropShadow
  • Horde_Image_Effect_Gd_RoundCorners
  • Horde_Image_Effect_Gd_TextWatermark
  • Horde_Image_Effect_Gd_Unsharpmask
  • Horde_Image_Effect_Im_Border
  • Horde_Image_Effect_Im_CenterCrop
  • Horde_Image_Effect_Im_Composite
  • Horde_Image_Effect_Im_DropShadow
  • Horde_Image_Effect_Im_LiquidResize
  • Horde_Image_Effect_Im_PhotoStack
  • Horde_Image_Effect_Im_PolaroidImage
  • Horde_Image_Effect_Im_RoundCorners
  • Horde_Image_Effect_Im_TextWatermark
  • Horde_Image_Effect_Im_Unsharpmask
  • Horde_Image_Effect_Imagick_Border
  • Horde_Image_Effect_Imagick_CenterCrop
  • Horde_Image_Effect_Imagick_Composite
  • Horde_Image_Effect_Imagick_DropShadow
  • Horde_Image_Effect_Imagick_LiquidResize
  • Horde_Image_Effect_Imagick_PhotoStack
  • Horde_Image_Effect_Imagick_PolaroidImage
  • Horde_Image_Effect_Imagick_RoundCorners
  • Horde_Image_Effect_Imagick_SmartCrop
  • Horde_Image_Effect_Imagick_TextWatermark
  • Horde_Image_Effect_Imagick_Unsharpmask
  • Horde_Image_Exception
  • Horde_Image_Exif
  • Horde_Image_Exif_Base
  • Horde_Image_Exif_Bundled
  • Horde_Image_Exif_Exiftool
  • Horde_Image_Exif_Parser_Base
  • Horde_Image_Exif_Php
  • Horde_Image_Gd
  • Horde_Image_Im
  • Horde_Image_Imagick
  • Horde_Image_Png
  • Horde_Image_Svg
  • Horde_Image_Swf
  • Horde_Image_Translation
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Image effect easily creating small, center-cropped thumbnails.
 4:  * Requires IM version 6.3.8-3 or greater.
 5:  *
 6:  * See the enclosed file COPYING for license information (LGPL). If you
 7:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 8:  *
 9:  * @author  Michael J. Rubinsky <mrubinsk@horde.org>
10:  * @package Image
11:  */
12: class Horde_Image_Effect_Im_CenterCrop extends Horde_Image_Effect
13: {
14:     /**
15:      * Valid parameters:
16:      *  <pre>
17:      *    width    - Target width
18:      *    height   - Target height
19:      * </pre>
20:      *
21:      * @var array
22:      */
23:     protected $_params = array();
24: 
25:     public function apply()
26:     {
27:         $this->_params = new Horde_Support_Array($this->_params);
28:         $ver = $this->_image->getIMVersion();
29:         if (is_array($ver) && version_compare($ver[0], '6.3.8') < 0) {
30:             $initialCrop = $this->_params->width * 2;
31:             $command = "-resize x{$initialCrop} -resize '{$initialCrop}x<' -resize 50% -gravity center -crop {$this->_params->width}x{$this->_params->height}+0+0 +repage";
32:         } else {
33:             $command = "-thumbnail {$this->_params->width}x{$this->_params->height}^ -gravity center -extent {$this->_params->width}x{$this->_params->height}";
34:         }
35:         $this->_image->addPostSrcOperation($command);
36:         $this->_image->clearGeometry();
37: 
38:         return;
39:     }
40: 
41: }
API documentation generated by ApiGen