[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/phpexcel/PHPExcel/Worksheet/ -> MemoryDrawing.php (source)

   1  <?php
   2  /**
   3   * PHPExcel
   4   *
   5   * Copyright (c) 2006 - 2014 PHPExcel
   6   *
   7   * This library is free software; you can redistribute it and/or
   8   * modify it under the terms of the GNU Lesser General Public
   9   * License as published by the Free Software Foundation; either
  10   * version 2.1 of the License, or (at your option) any later version.
  11   *
  12   * This library is distributed in the hope that it will be useful,
  13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15   * Lesser General Public License for more details.
  16   *
  17   * You should have received a copy of the GNU Lesser General Public
  18   * License along with this library; if not, write to the Free Software
  19   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  20   *
  21   * @category   PHPExcel
  22   * @package    PHPExcel_Worksheet
  23   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  24   * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
  25   * @version    ##VERSION##, ##DATE##
  26   */
  27  
  28  
  29  /**
  30   * PHPExcel_Worksheet_MemoryDrawing
  31   *
  32   * @category   PHPExcel
  33   * @package    PHPExcel_Worksheet
  34   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  35   */
  36  class PHPExcel_Worksheet_MemoryDrawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable
  37  {
  38      /* Rendering functions */
  39      const RENDERING_DEFAULT                    = 'imagepng';
  40      const RENDERING_PNG                        = 'imagepng';
  41      const RENDERING_GIF                        = 'imagegif';
  42      const RENDERING_JPEG                    = 'imagejpeg';
  43  
  44      /* MIME types */
  45      const MIMETYPE_DEFAULT                    = 'image/png';
  46      const MIMETYPE_PNG                        = 'image/png';
  47      const MIMETYPE_GIF                        = 'image/gif';
  48      const MIMETYPE_JPEG                        = 'image/jpeg';
  49  
  50      /**
  51       * Image resource
  52       *
  53       * @var resource
  54       */
  55      private $_imageResource;
  56  
  57      /**
  58       * Rendering function
  59       *
  60       * @var string
  61       */
  62      private $_renderingFunction;
  63  
  64      /**
  65       * Mime type
  66       *
  67       * @var string
  68       */
  69      private $_mimeType;
  70  
  71      /**
  72       * Unique name
  73       *
  74       * @var string
  75       */
  76      private $_uniqueName;
  77  
  78      /**
  79       * Create a new PHPExcel_Worksheet_MemoryDrawing
  80       */
  81      public function __construct()
  82      {
  83          // Initialise values
  84          $this->_imageResource        = null;
  85          $this->_renderingFunction     = self::RENDERING_DEFAULT;
  86          $this->_mimeType            = self::MIMETYPE_DEFAULT;
  87          $this->_uniqueName            = md5(rand(0, 9999). time() . rand(0, 9999));
  88  
  89          // Initialize parent
  90          parent::__construct();
  91      }
  92  
  93      /**
  94       * Get image resource
  95       *
  96       * @return resource
  97       */
  98      public function getImageResource() {
  99          return $this->_imageResource;
 100      }
 101  
 102      /**
 103       * Set image resource
 104       *
 105       * @param    $value resource
 106       * @return PHPExcel_Worksheet_MemoryDrawing
 107       */
 108      public function setImageResource($value = null) {
 109          $this->_imageResource = $value;
 110  
 111          if (!is_null($this->_imageResource)) {
 112              // Get width/height
 113              $this->_width    = imagesx($this->_imageResource);
 114              $this->_height    = imagesy($this->_imageResource);
 115          }
 116          return $this;
 117      }
 118  
 119      /**
 120       * Get rendering function
 121       *
 122       * @return string
 123       */
 124      public function getRenderingFunction() {
 125          return $this->_renderingFunction;
 126      }
 127  
 128      /**
 129       * Set rendering function
 130       *
 131       * @param string $value
 132       * @return PHPExcel_Worksheet_MemoryDrawing
 133       */
 134      public function setRenderingFunction($value = PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT) {
 135          $this->_renderingFunction = $value;
 136          return $this;
 137      }
 138  
 139      /**
 140       * Get mime type
 141       *
 142       * @return string
 143       */
 144      public function getMimeType() {
 145          return $this->_mimeType;
 146      }
 147  
 148      /**
 149       * Set mime type
 150       *
 151       * @param string $value
 152       * @return PHPExcel_Worksheet_MemoryDrawing
 153       */
 154      public function setMimeType($value = PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT) {
 155          $this->_mimeType = $value;
 156          return $this;
 157      }
 158  
 159      /**
 160       * Get indexed filename (using image index)
 161       *
 162       * @return string
 163       */
 164      public function getIndexedFilename() {
 165          $extension     = strtolower($this->getMimeType());
 166          $extension     = explode('/', $extension);
 167          $extension     = $extension[1];
 168  
 169          return $this->_uniqueName . $this->getImageIndex() . '.' . $extension;
 170      }
 171  
 172      /**
 173       * Get hash code
 174       *
 175       * @return string    Hash code
 176       */
 177  	public function getHashCode() {
 178          return md5(
 179                $this->_renderingFunction
 180              . $this->_mimeType
 181              . $this->_uniqueName
 182              . parent::getHashCode()
 183              . __CLASS__
 184          );
 185      }
 186  
 187      /**
 188       * Implement PHP __clone to create a deep clone, not just a shallow copy.
 189       */
 190  	public function __clone() {
 191          $vars = get_object_vars($this);
 192          foreach ($vars as $key => $value) {
 193              if (is_object($value)) {
 194                  $this->$key = clone $value;
 195              } else {
 196                  $this->$key = $value;
 197              }
 198          }
 199      }
 200  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1