自己编写的生成缩略图的类

/**
* 获得图像的缩略图
* @name get_minImg_class.php
*
**/
class getMinImg{
public $imgSize=array();//存储img尺寸数组$imgSize['width'],$imgSize['height']
public $thum=array();//缩略图数组$thum['width'],$thum['height']
public $newImgSize=array();//生成新图片的大小$newImgSize['width'],$newImgSize['height']
private $imgfunc;//调用的图片函数名
private $handle;//文件句柄
public $filename;//文件名
public $imgInfo=array();//文件信息$imgInfo[0]代表文件路径及名称(无后缀),$imgInfo[1]代表文件类型
private $newHandle;//新的文件句柄

function __construct($filename,$thum=array('width'=>150,'height'=>100)){
$this->filename=$filename;
if(!(boolean)$this->filename){ return false;}
$this->thum=$thum;
$this->getImgType();
$this->getHandle();
$this->getImgSize();
$this->getNewImgSize();
}
private function getHandle(){//获得文件句柄
switch ($this->imgInfo[1]) {
case 'jpg':
$this->handle=imagecreatefromjpeg($this->filename);
$this->imgfunc="imagejpeg";
break;
case 'jpeg':
$this->handle=imagecreatefromjpeg($this->filename);
$this->imgfunc="imagejpeg";
break;
case 'png':
$this->handle=imagecreatefrompng($this->filename);
$this->imgfunc="imagepng";
break;
case 'gif':
$this->handle=imagecreatefromgif($this->filename);
$this->imgfunc="imagegif";
break;

default:$this->handle=imagecreatefromjpeg($this->filename);
$this->imgfunc="imagejpeg";
break;
}
}
public function getImgType(){//获得图像的类型
$ext=array();
$ext=explode(".", $this->filename);
$this->imgInfo=$ext;
}

public function getImgSize(){//获得图像大小
$imgSize=array();
$arr=getimagesize($this->filename);
$imgSize['width']=$arr[0];
$imgSize['height']=$arr[1];
//var_dump($imgSize);
$this->imgSize=$imgSize;
}

public function getNewImgSize(){//获得新图像的大小
$newImgSize=array();
if($this->imgSize['width']>$this->thum['width'] || $this->imgSize['height']>$this->thum['height']){
if($this->imgSize['width']>$this->imgSize['height']){
$newImgSize['width']=$this->thum['width'];
$newImgSize['height']=$this->imgSize['height']*($this->thum['width']/$this->imgSize['width']);
}
if($this->imgSize['height']>$this->imgSize['width']){
$newImgSize['height']=$this->thum['height'];;
$newImgSize['width']=$this->imgSize['width']*($this->thum['height']/$this->imgSize['height']);
}
if($this->imgSize['height']===$this->imgSize['width']){
$newImgSize['height']=$this->thum['height'];
$newImgSize['width']=$this->thum['width'];
}
//echo "big";
}else{
$newImgSize['height']=$this->imgSize['height'];
$newImgSize['width']=$this->imgSize['width'];
}
$this->newImgSize=$newImgSize;
}

public function getAndSaveImg(){//重新生成图片
$this->newHandle=imagecreatetruecolor($this->newImgSize['width'],$this->newImgSize['height']);
imagecopyresized($this->newHandle, $this->handle, 0, 0, 0, 0, $this->newImgSize['width'], $this->newImgSize['height'], $this->imgSize['width'], $this->imgSize['height']);
call_user_func_array($this->imgfunc,array($this->newHandle,"newImg/0001.png"));
}

function __destruct(){
imagedestroy($this->handle);
imagedestroy($this->newHandle);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值