/modules/storecommander/ead6f6fce09/SC/lib/js/ckeditor/kcfinder/lib/class_image.php
PHP | 264 lines | 77 code | 50 blank | 137 comment | 8 complexity | dbec8cb9c74afb6f56c37159c8a84a16 MD5 | raw file
- <?php
- /**
- * Store Commander
- *
- * @category administration
- * @author Store Commander - support@storecommander.com
- * @version 2015-09-15
- * @uses Prestashop modules
- * @since 2009
- * @copyright Copyright © 2009-2015, Store Commander
- * @license commercial
- * All rights reserved! Copying, duplication strictly prohibited
- *
- * *****************************************
- * * STORE COMMANDER *
- * * http://www.StoreCommander.com *
- * * V 2015-09-15 *
- * *****************************************
- *
- * Compatibility: PS version: 1.1 to 1.6.1
- *
- **/
-
- /** This file is part of KCFinder project
- *
- * @desc Abstract image driver class
- * @package KCFinder
- * @version 3.12
- * @author Pavel Tzonkov <sunhater@sunhater.com>
- * @copyright 2010-2014 KCFinder Project
- * @license http://opensource.org/licenses/GPL-3.0 GPLv3
- * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
- * @link http://kcfinder.sunhater.com
- */
-
- namespace kcfinder;
-
- abstract class image {
- const DEFAULT_JPEG_QUALITY = 75;
-
- /** Image resource or object
- * @var mixed */
- protected $image;
-
- /** Image width in pixels
- * @var integer */
- protected $width;
-
- /** Image height in pixels
- * @var integer */
- protected $height;
-
- /** Init error
- * @var bool */
- protected $initError = false;
-
- /** Driver specific options
- * @var array */
- protected $options = array();
-
-
- /** Magic method which allows read-only access to all protected or private
- * class properties
- * @param string $property
- * @return mixed */
-
- final public function __get($property) {
- return property_exists($this, $property) ? $this->$property : null;
- }
-
-
- /** Constructor. Parameter $image should be:
- * 1. An instance of image driver class (copy instance).
- * 2. An image represented by the type of the $image property
- * (resource or object).
- * 3. An array with two elements. First - width, second - height.
- * Creates a blank image.
- * 4. A filename string. Get image form file.
- * Second paramaeter is used by pass some specific image driver options
- * @param mixed $image
- * @param array $options */
-
- public function __construct($image, array $options=array()) {
- $this->image = $this->width = $this->height = null;
- $imageDetails = $this->buildImage($image);
-
- if ($imageDetails !== false)
- list($this->image, $this->width, $this->height) = $imageDetails;
- else
- $this->initError = true;
- $this->options = $options;
- }
-
-
- /** Factory pattern to load selected driver. $image and $options are passed
- * to the constructor of the image driver
- * @param string $driver
- * @param mixed $image
- * @return object */
-
- final static function factory($driver, $image, array $options=array()) {
- $class = __NAMESPACE__ . "\\image_$driver";
- return new $class($image, $options);
- }
-
-
- /** Checks if the drivers in the array parameter could be used. Returns first
- * found one
- * @param array $drivers
- * @return string */
-
- final static function getDriver(array $drivers=array('gd')) {
- foreach ($drivers as $driver) {
- if (!preg_match('/^[a-z0-9\_]+$/i', $driver))
- continue;
- $class = __NAMESPACE__ . "\\image_$driver";
- if (class_exists($class) && method_exists($class, "available")) {
- eval("\$avail = $class::available();");
- if ($avail) return $driver;
- }
- }
- return false;
- }
-
-
- /** Returns an array. Element 0 - image resource. Element 1 - width. Element 2 - height.
- * Returns FALSE on failure.
- * @param mixed $image
- * @return array */
-
- final protected function buildImage($image) {
- $class = get_class($this);
-
- if ($image instanceof $class) {
- $width = $image->width;
- $height = $image->height;
- $img = $image->image;
-
- } elseif (is_array($image)) {
- list($key, $width) = each($image);
- list($key, $height) = each($image);
- $img = $this->getBlankImage($width, $height);
-
- } else
- $img = $this->getImage($image, $width, $height);
-
- return ($img !== false)
- ? array($img, $width, $height)
- : false;
- }
-
-
- /** Returns calculated proportional width from the given height
- * @param integer $resizedHeight
- * @return integer */
-
- final public function getPropWidth($resizedHeight) {
- $width = round(($this->width * $resizedHeight) / $this->height);
- if (!$width) $width = 1;
- return $width;
- }
-
-
- /** Returns calculated proportional height from the given width
- * @param integer $resizedWidth
- * @return integer */
-
- final public function getPropHeight($resizedWidth) {
- $height = round(($this->height * $resizedWidth) / $this->width);
- if (!$height) $height = 1;
- return $height;
- }
-
-
- /** Checks if PHP needs some extra extensions to use the image driver. This
- * static method should be implemented into driver classes like abstract
- * methods
- * @return bool */
- static function available() { return false; }
-
- /** Checks if file is an image. This static method should be implemented into
- * driver classes like abstract methods
- * @param string $file
- * @return bool */
- static function checkImage($file) { return false; }
-
- /** Resize image. Should return TRUE on success or FALSE on failure
- * @param integer $width
- * @param integer $height
- * @return bool */
- abstract public function resize($width, $height);
-
- /** Resize image to fit in given resolution. Should returns TRUE on success
- * or FALSE on failure. If $background is set, the image size will be
- * $width x $height and the empty spaces (if any) will be filled with defined
- * color. Background color examples: "#5f5", "#ff67ca", array(255, 255, 255)
- * @param integer $width
- * @param integer $height
- * @param mixed $background
- * @return bool */
- abstract public function resizeFit($width, $height, $background=false);
-
- /** Resize and crop the image to fit in given resolution. Returns TRUE on
- * success or FALSE on failure
- * @param mixed $src
- * @param integer $offset
- * @return bool */
- abstract public function resizeCrop($width, $height, $offset=false);
-
-
- /** Rotate image
- * @param integer $angle
- * @param string $background
- * @return bool */
- abstract public function rotate($angle, $background="#000000");
-
- abstract public function flipHorizontal();
-
- abstract public function flipVertical();
-
- /** Apply a PNG or GIF watermark to the image. $top and $left parameters sets
- * the offset of the watermark in pixels. Boolean and NULL values are possible
- * too. In default case (FALSE, FALSE) the watermark should be applyed to
- * the bottom right corner. NULL values means center aligning. If the
- * watermark is bigger than the image or it's partialy or fully outside the
- * image, it shoudn't be applied
- * @param string $file
- * @param mixed $top
- * @param mixed $left
- * @return bool */
- abstract public function watermark($file, $left=false, $top=false);
-
- /** Should output the image. Second parameter is used to pass some options like
- * 'file' - if is set, the output will be written to a file
- * 'quality' - compression quality
- * It's possible to use extra specific options required by image type ($type)
- * @param string $type
- * @param array $options
- * @return bool */
- abstract public function output($type='jpeg', array $options=array());
-
- /** This method should create a blank image with selected size. Should returns
- * resource or object related to the created image, which will be passed to
- * $image property
- * @param integer $width
- * @param integer $height
- * @return mixed */
- abstract protected function getBlankImage($width, $height);
-
- /** This method should create an image from source image. Only first parameter
- * ($image) is input. Its type should be filename string or a type of the
- * $image property. See the constructor reference for details. The
- * parametters $width and $height are output only. Should returns resource or
- * object related to the created image, which will be passed to $image
- * property
- * @param mixed $image
- * @param integer $width
- * @param integer $height
- * @return mixed */
- abstract protected function getImage($image, &$width, &$height);
-
- }
-
- ?>