生成縮略圖的PHP類
/**
- 獲得圖像的縮略圖
@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);
}
}</pre>