]> 4ch.mooo.com Git - test.git/blob - lib/thumb/thumb.imagemagick.php
modified: .gitignore
[test.git] / lib / thumb / thumb.imagemagick.php
1 <?php\r
2 /**\r
3  * Thumbnail Generate API: ImageMagick Wrapper\r
4  *\r
5  * 提供程式便於以 ImageMagick 命令列生成預覽圖的物件\r
6  *\r
7  * @package PMCLibrary\r
8  * @version $Id: thumb.imagemagick.php 496 2007-08-05 11:16:12Z scribe $\r
9  * @date $Date: 2007-08-05 19:16:12 +0800 (星期日, 05 八月 2007) $\r
10  */\r
11 \r
12 class ThumbWrapper{\r
13         var $sourceFile, $sourceWidth, $sourceHeight, $thumbWidth, $thumbHeight, $thumbQuality;\r
14         var $_exec;\r
15 \r
16         function ThumbWrapper($sourceFile='', $sourceWidth=0, $sourceHeight=0){\r
17                 $this->sourceFile = $sourceFile;\r
18                 $this->sourceWidth = $sourceWidth;\r
19                 $this->sourceHeight = $sourceHeight;\r
20                 $this->_exec = 'convert'; // ImageMagick "convert" Binary Location\r
21         }\r
22 \r
23         function getClass(){\r
24                 $str = 'ImageMagick Wrapper';\r
25                 if($this->isWorking()){\r
26                         $a = null;\r
27                         preg_match('/^Version: ImageMagick (.*?) [hf]/', `$this->_exec -version`, $a);\r
28                         $str .= ' : '.$a[1];\r
29                         unset($a);\r
30                 }\r
31                 return $str;\r
32         }\r
33 \r
34         function isWorking(){\r
35                 if(!function_exists('exec')) return false;\r
36                 @exec("$this->_exec -version", $status, $retval);\r
37                 return ($retval===0);\r
38         }\r
39 \r
40         function setThumbnailConfig($thumbWidth, $thumbHeight, $thumbQuality=50){\r
41                 $this->thumbWidth = $thumbWidth;\r
42                 $this->thumbHeight = $thumbHeight;\r
43                 $this->thumbQuality = $thumbQuality;\r
44         }\r
45 \r
46         function makeThumbnailtoFile($destFile){\r
47                 if(!$this->isWorking()) return false;\r
48                 $CLI = "$this->_exec -thumbnail {$this->thumbWidth}x{$this->thumbHeight} -quality $this->thumbQuality \"$this->sourceFile\" \"$destFile\"";\r
49                 @exec($CLI);\r
50                 return true;\r
51         }\r
52 }\r
53 ?>