<?php | |
/** | |
* Create thumbnails. | |
* @author $Author:ray $ | |
* @version $Id:Thumbnail.php 709 2007-01-30 23:22:04Z ray $ | |
* @package ImageManager | |
*/ | |
require_once('../ImageManager/Classes/Transform.php'); | |
/** | |
* Thumbnail creation | |
* @author $Author:ray $ | |
* @version $Id:Thumbnail.php 709 2007-01-30 23:22:04Z ray $ | |
* @package ImageManager | |
* @subpackage Images | |
*/ | |
class Thumbnail | |
{ | |
/** | |
* Graphics driver, GD, NetPBM or ImageMagick. | |
*/ | |
var $driver; | |
/** | |
* Thumbnail default width. | |
*/ | |
var $width = 96; | |
/** | |
* Thumbnail default height. | |
*/ | |
var $height = 96; | |
/** | |
* Thumbnail default JPEG quality. | |
*/ | |
var $quality = 85; | |
/** | |
* Thumbnail is proportional | |
*/ | |
var $proportional = true; | |
/** | |
* Default image type is JPEG. | |
*/ | |
var $type = 'jpeg'; | |
/** | |
* Create a new Thumbnail instance. | |
* @param int $width thumbnail width | |
* @param int $height thumbnail height | |
*/ | |
function Thumbnail($width=96, $height=96) | |
{ | |
$this->driver = Image_Transform::factory(IMAGE_CLASS); | |
$this->width = $width; | |
$this->height = $height; | |
} | |
/** | |
* Create a thumbnail. | |
* @param string $file the image for the thumbnail | |
* @param string $thumbnail if not null, the thumbnail will be saved | |
* as this parameter value. | |
* @return boolean true if thumbnail is created, false otherwise | |
*/ | |
function createThumbnail($file, $thumbnail=null) | |
{ | |
if(!is_file($file)) | |
Return false; | |
//error_log('Creating Thumbs: '.$file); | |
$this->driver->load($file); | |
if($this->proportional) | |
{ | |
$width = $this->driver->img_x; | |
$height = $this->driver->img_y; | |
if ($width > $height) | |
$this->height = intval($this->width/$width*$height); | |
else if ($height > $width) | |
$this->width = intval($this->height/$height*$width); | |
} | |
$this->driver->resize($this->width, $this->height); | |
if(is_null($thumbnail)) | |
$this->save($file); | |
else | |
$this->save($thumbnail); | |
$this->free(); | |
if(is_file($thumbnail)) | |
Return true; | |
else | |
Return false; | |
} | |
/** | |
* Save the thumbnail file. | |
* @param string $file file name to be saved as. | |
*/ | |
function save($file) | |
{ | |
$this->driver->save($file); | |
} | |
/** | |
* Free up the graphic driver resources. | |
*/ | |
function free() | |
{ | |
$this->driver->free(); | |
} | |
} | |
?> |