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:  * Simple composite effect for composing multiple images. This effect assumes
 4:  * that all images being passed in are already the desired size.
 5:  *
 6:  * Copyright 2009-2012 Horde LLC (http://www.horde.org/)
 7:  *
 8:  * @author  Michael J. Rubinsky <mrubinsk@horde.org>
 9:  * @package Image
10:  */
11: class Horde_Image_Effect_Im_Composite extends Horde_Image_Effect
12: {
13:     /**
14:      * Valid parameters for border effects:
15:      *
16:      * 'images'  - an array of Horde_Image objects to overlay.
17:      *
18:      *  ...and ONE of the following. If both are provided, the behaviour is
19:      *  undefined.
20:      *
21:      * 'gravity'    - the ImageMagick gravity constant describing placement
22:      *                (IM driver only so far, not imagick)
23:      *
24:      * 'x' and 'y'  - coordinates for the overlay placement.
25:      *
26:      * @var array
27:      */
28:     protected $_params = array();
29: 
30:     /**
31:      * Draw the border.
32:      *
33:      * This draws the configured border to the provided image. Beware,
34:      * that every pixel inside the border clipping will be overwritten
35:      * with the background color.
36:      */
37:     public function apply()
38:     {
39:         $ops = $geometry = $gravity = '';
40:         if (isset($this->_params['gravity'])) {
41:             $gravity = ' -gravity ' . $this->_params['gravity'];
42:         }
43: 
44:         if (isset($this->_params['x']) && isset($this->_params['y'])) {
45:             $geometry = ' -geometry +' . $this->_params['x'] . '+' . $this->_params['y'] . ' ';
46:         }
47:         if (isset($this->_params['compose'])) {
48:             // The -matte ensures that the destination (background) image
49:             // has an alpha channel - to avoid black holes in the image.
50:             $compose = ' -compose ' . $this->_params['compose'] . ' -matte';
51:         }
52: 
53:         foreach($this->_params['images'] as $image) {
54:             $temp = $image->toFile();
55:             $this->_image->addFileToClean($temp);
56:             $ops .= ' ' . $temp . $gravity . $compose . ' -composite';
57:         }
58:         $this->_image->addOperation($geometry);
59:         $this->_image->addPostSrcOperation($ops);
60: 
61:         return true;
62:     }
63: 
64: }
API documentation generated by ApiGen