日期:2014-05-17 浏览次数:20830 次
<?php
/**
* 图像处理类
*/
class image
{
var $attachinfo;
var $targetfile; //图片路径
var $imagecreatefromfunc;
var $imagefunc;
var $attach;
var $animatedgif;
var $watermarkquality;
var $watermarktext;
var $thumbstatus;
var $watermarkstatus;
// 析构函数,兼容PHP4
function image($targetfile, $cfg_thumb, $cfg_watermarktext, $photo_waterpos, $photo_diaphaneity, $photo_wheight, $photo_wwidth, $cfg_watermarktype, $photo_marktrans,$trueMarkimg, $attach = array())
{
$this->__construct($targetfile, $cfg_thumb, $cfg_watermarktext, $photo_waterpos, $photo_diaphaneity, $photo_wheight, $photo_wwidth, $cfg_watermarktype, $photo_marktrans,$trueMarkimg, $attach);
}
// 析构函数
function __construct($targetfile, $cfg_thumb, $cfg_watermarktext, $photo_waterpos, $photo_diaphaneity, $photo_wheight, $photo_wwidth, $cfg_watermarktype, $photo_marktrans,$trueMarkimg, $attach = array())
{
$this->thumbstatus = $cfg_thumb;
$this->watermarktext = $cfg_watermarktext;
$this->watermarkstatus = $photo_waterpos;
$this->watermarkquality = $photo_marktrans;
$this->watermarkminwidth = $photo_wwidth;
$this->watermarkminheight = $photo_wheight;
$this->watermarktype = $cfg_watermarktype;
$this->watermarktrans = $photo_diaphaneity;
$this->animatedgif = 0;
$this->targetfile = $targetfile;
$this->attachinfo = @getimagesize($targetfile);
$this->attach = $attach;
switch($this->attachinfo['mime'])
{
case 'image/jpeg':
$this->imagecreatefromfunc = function_exists('imagecreatefromjpeg') ? 'imagecreatefromjpeg' : '';
$this->imagefunc = function_exists('imagejpeg') ? 'imagejpeg' : '';
break;
case 'image/gif':
$this->imagecreatefromfunc = function_exists('imagecreatefromgif') ? 'imagecreatefromgif' : '';
$this->imagefunc = function_exists('imagegif') ? 'imagegif' : '';
break;
case 'image/png':
$this->imagecreatefromfunc = function_exists('imagecreatefrompng') ? 'imagecreatefrompng' : '';
$this->imagefunc = function_exists('imagepng') ? 'imagepng' : '';
break;
}//为空则匹配类型的函数不存在
$this->attach['size'] = empty($this->attach['size']) ? @filesize($targetfile) : $this->attach['size'];
if($this->attachinfo['mime'] == 'image/gif')
{
$fp = fopen($targetfile, 'rb');
$targetfilecontent = fread($fp, $this->attach['size']);
fclose($fp);
$this->animatedgif = strpos($targetfilecontent, 'NETSCAPE2.0') === false ? 0 : 1;
}
}
/**
* 生成缩略图
*
* @access public
* @param int $thumbwidth 图片宽度
* @param int $thumbheight 图片高度
* @param int $preview 是否预览
* @return void
*/
function thumb($thumbwidth, $thumbheight, $preview = 0)
{
$this->thumb_gd($thumbwidth, $thumbheight, $preview);
if($this->thumbstatus == 2 && $this->watermarkstatus)
{
$this->image($this->targetfile, $this->attach);
$this->attach['size'] = filesize($this->targetfile);
}
}
/**