source: sourcecode/application/libraries/PHPExcel/Worksheet/Drawing.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 3.6 KB
Line 
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_Drawing
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    1.8.0, 2014-03-02
26 */
27
28
29/**
30 * PHPExcel_Worksheet_Drawing
31 *
32 * @category   PHPExcel
33 * @package    PHPExcel_Worksheet_Drawing
34 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36class PHPExcel_Worksheet_Drawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable
37{
38        /**
39         * Path
40         *
41         * @var string
42         */
43        private $_path;
44
45    /**
46     * Create a new PHPExcel_Worksheet_Drawing
47     */
48    public function __construct()
49    {
50        // Initialise values
51        $this->_path                            = '';
52
53        // Initialize parent
54        parent::__construct();
55    }
56
57    /**
58     * Get Filename
59     *
60     * @return string
61     */
62    public function getFilename() {
63        return basename($this->_path);
64    }
65
66    /**
67     * Get indexed filename (using image index)
68     *
69     * @return string
70     */
71    public function getIndexedFilename() {
72        $fileName = $this->getFilename();
73        $fileName = str_replace(' ', '_', $fileName);
74        return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension();
75    }
76
77    /**
78     * Get Extension
79     *
80     * @return string
81     */
82    public function getExtension() {
83        $exploded = explode(".", basename($this->_path));
84        return $exploded[count($exploded) - 1];
85    }
86
87    /**
88     * Get Path
89     *
90     * @return string
91     */
92    public function getPath() {
93        return $this->_path;
94    }
95
96    /**
97     * Set Path
98     *
99     * @param   string          $pValue                 File path
100     * @param   boolean         $pVerifyFile    Verify file
101     * @throws  PHPExcel_Exception
102     * @return PHPExcel_Worksheet_Drawing
103     */
104    public function setPath($pValue = '', $pVerifyFile = true) {
105        if ($pVerifyFile) {
106                if (file_exists($pValue)) {
107                        $this->_path = $pValue;
108
109                        if ($this->_width == 0 && $this->_height == 0) {
110                                // Get width/height
111                                list($this->_width, $this->_height) = getimagesize($pValue);
112                        }
113                } else {
114                        throw new PHPExcel_Exception("File $pValue not found!");
115                }
116        } else {
117                $this->_path = $pValue;
118        }
119        return $this;
120    }
121
122        /**
123         * Get hash code
124         *
125         * @return string       Hash code
126         */
127        public function getHashCode() {
128        return md5(
129                  $this->_path
130                . parent::getHashCode()
131                . __CLASS__
132        );
133    }
134
135        /**
136         * Implement PHP __clone to create a deep clone, not just a shallow copy.
137         */
138        public function __clone() {
139                $vars = get_object_vars($this);
140                foreach ($vars as $key => $value) {
141                        if (is_object($value)) {
142                                $this->$key = clone $value;
143                        } else {
144                                $this->$key = $value;
145                        }
146                }
147        }
148}
Note: See TracBrowser for help on using the repository browser.