source: trunk/plugins/ImageManager/Classes/Thumbnail.php @ 841

Last change on this file since 841 was 709, checked in by ray, 13 years ago

Ticket #928 ImageManager? fails if (another) Files.php exists in include path

  • Property svn:keywords set to LastChangedDate LastChangedRevision LastChangedBy HeadURL Id
File size: 2.2 KB
Line 
1<?php
2/**
3 * Create thumbnails.
4 * @author $Author$
5 * @version $Id$
6 * @package ImageManager
7 */
8
9
10require_once('../ImageManager/Classes/Transform.php');
11
12/**
13 * Thumbnail creation
14 * @author $Author$
15 * @version $Id$
16 * @package ImageManager
17 * @subpackage Images
18 */
19class Thumbnail
20{
21        /**
22         * Graphics driver, GD, NetPBM or ImageMagick.
23         */
24        var $driver;
25
26        /**
27         * Thumbnail default width.
28         */
29        var $width = 96;
30
31        /**
32         * Thumbnail default height.
33         */
34        var $height = 96;
35
36        /**
37         * Thumbnail default JPEG quality.
38         */
39        var $quality = 85;
40
41        /**
42         * Thumbnail is proportional
43         */
44        var $proportional = true;
45
46        /**
47         * Default image type is JPEG.
48         */
49        var $type = 'jpeg';
50
51        /**
52         * Create a new Thumbnail instance.
53         * @param int $width thumbnail width
54         * @param int $height thumbnail height
55         */
56        function Thumbnail($width=96, $height=96)
57        {
58                $this->driver = Image_Transform::factory(IMAGE_CLASS);
59                $this->width = $width;
60                $this->height = $height;
61        }
62
63        /**
64         * Create a thumbnail.
65         * @param string $file the image for the thumbnail
66         * @param string $thumbnail if not null, the thumbnail will be saved
67         * as this parameter value.
68         * @return boolean true if thumbnail is created, false otherwise
69         */
70        function createThumbnail($file, $thumbnail=null)
71        {
72                if(!is_file($file))
73                        Return false;
74
75                //error_log('Creating Thumbs: '.$file);
76
77                $this->driver->load($file);
78
79                if($this->proportional)
80                {
81                        $width = $this->driver->img_x;
82                        $height = $this->driver->img_y;
83
84                        if ($width > $height)
85                                $this->height = intval($this->width/$width*$height);
86                        else if ($height > $width)
87                                $this->width = intval($this->height/$height*$width);
88                }
89
90                $this->driver->resize($this->width, $this->height);
91
92                if(is_null($thumbnail))
93                        $this->save($file);
94                else
95                        $this->save($thumbnail);
96
97
98                $this->free();
99
100                if(is_file($thumbnail))
101                        Return true;
102                else
103                        Return false;
104        }
105
106        /**
107         * Save the thumbnail file.
108         * @param string $file file name to be saved as.
109         */
110        function save($file)
111        {
112                $this->driver->save($file);
113        }
114
115        /**
116         * Free up the graphic driver resources.
117         */
118        function free()
119        {
120                $this->driver->free();
121        }
122}
123
124
125?>
Note: See TracBrowser for help on using the repository browser.