您的位置:首页 > 编程语言 > PHP开发

用PHP写的一个生成标准缩略图的类

2010-06-26 21:17 316 查看
<?php
class Imagecut{
private $size_x;
private $size_y;
private $width;//源图像宽度
private $height;//源图像高度
private $image_alt;
private $image_type;
private $imagename;
/*
*$size_x:缩略图宽度
*$size_y:缩略图宽度
*$image_alt:缩略图显示的标题或名字
*$image_type:生成的缩略图的扩展名
*/
function __construct($size_x,$size_y,$width,$height,$image_alt,$image_type,$imagename)
{
$this->size_x=$size_x;
$this->size_y=$size_y;
$this->width=$width;
$this->height=$height;
$this->image_alt=$image_alt;
$this->image_type=$image_type;
$this->imagename=$imagename;
}
/*
* 这个根据源图像生成缩略图,支持gif,jpeg,png,bmp,wbmp,xbm,xpm格式的图像
* $imagedir:缩略图保存的目录
* $issave:是否保存到文件,true表示保存,false表示直接输出到浏览器
* 生成标准略缩图,直接压缩
*/
function thumb($imagedir,$issave=true)
{
$imthumb=imagecreatetruecolor($this->size_x,$this->size_y);
switch ($this->image_type)
{
case 1:$imsource=imagecreatefromgif($this->imagename);break;
case 2:$imsource=imagecreatefromjpeg($this->imagename);break;
case 3:$imsource=imagecreatefrompng($this->imagename);break;
case 6:$imsource=imagecreatefrombmp($this->imagename);break;
case 15:$imsource=imagecreatefromwbmp($this->imagename);break;
case 16:$imsource=imagecreatefromxbm($this->imagename);break;
case IMG_XPM:$imsource=imagecreatefromxpm($this->imagename);break;
}

imagecopyresampled($imthumb,$imsource,0,0,0,0,$this->size_x,$this->size_y,$this->width,$this->height);
if($issave)
{
switch ($this->image_type)
{
case 1:imagegif($imthumb,$imagedir.$this->image_alt.".gif");break;
case 2:imagejpeg($imthumb,$imagedir.$this->image_alt.".jpg");break;
case 3:imagepng($imthumb,$imagedir.$this->image_alt.".png");break;
case 6:imagebmp($imthumb,$imagedir.$this->image_alt.".bmp");break;
case 15:imagewbmp($imthumb,$imagedir.$this->image_alt.".wbmp");break;
case 16:imagexbm($imthumb,$imagedir.$this->image_alt.".xbm");break;
case IMG_XPM:imagexpm($imthumb,$imagedir.$this->image_alt.".xpm");break;
}
}
else
{
switch ($this->image_type)
{
case 1:header("content-type:image/gif/r/n");imagegif($imthumb);break;
case 2:header("content-type:image/jpeg/r/n");imagejpeg($imthumb);break;
case 3:header("content-type:image/png/r/n");imagepng($imthumb);break;
case 6:header("content-type:image/bmp/r/n");imagebmp($imthumb);break;
case 15:header("content-type:image/wbmp/r/n");imagewbmp($imthumb);break;
case 16:header("content-type:image/xbmp/r/n");imagexbm($imthumb);break;
case IMG_XPM:header("content-type:image/xpm/r/n");imagexpm($imthumb);break;
}
}
imagedestroy($imthumb);
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: