File Manager
<?php
/**
* Create thumbnails.
* @author $Author: Wei Zhuo $
* @version $Id: Thumbnail.php 4169 2007-09-21 06:28:49Z silmarillion $
* @package ImageManager
*/
require_once(dirname(__FILE__).'/Transform.php');
/**
* Thumbnail creation
* @author $Author: Wei Zhuo $
* @version $Id: Thumbnail.php 4169 2007-09-21 06:28:49Z silmarillion $
* @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();
}
}
?>
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com