125 lines
2.3 KiB
PHP
Executable File
125 lines
2.3 KiB
PHP
Executable File
<?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();
|
|
}
|
|
}
|
|
|
|
|
|
?>
|