生成缩略图

<?php
/**
 * 生成缩略图
 * @author Recoder
 */
class ImageThumb {
	protected $type; //图片类型(后缀)
	protected $image; //原图资源
	protected $width;
	protected $height; 
	protected $mime; //类型

	protected $thumb; //缩略图资源

	public function __construct() {
		$this->image = null;
		$this->thumb = null;
	}
	public function __destruct() {
		if(isset($this->thumb)) {
			imagedestroy($this->thumb);
		}
	}
	//添加原图路径
	public function addPath($src) {
		$info = getimagesize($src);
		$this->width = $info[0];
		$this->height = $info[1];
		$this->mime = $info['mime'];
		$this->type = image_type_to_extension($info[2], false);
		//根据类型创建动态函数名
		$func = "imagecreatefrom{$this->type}";
		$this->image = $func($src);
	}
	//创建一个缩略图
	public function thumb($x=100, $y=100) {
		//创建一个真彩图
		$this->thumb = imagecreatetruecolor($x, $y);
		//将图片压缩copy到真彩图上
		imagecopyresampled($this->thumb, $this->image, 0, 0, 0, 0, $x, $y, $this->width, $this->height);
		imagedestroy($this->image); //销毁内存中的原图
	}

	public function display() {
		header('Content-type:', $this->mime);
		$func = "image{$this->type}";
		$func($this->thumb);
	}
	//将缩略图保存到指定路径中
	public function save($savepath) {
		header('Content-type:', $this->mime);
		$func = "image{$this->type}";
		if(!empty($savepath)) {
			$func($this->thumb, $savepath);
		}
	}
}


例子:

$a = new ImageThumb();
$a->addPath('day1/2.jpg');
$a->thumb(200, 120);
$a->display();
$a->save('save.jpg'); //保存到同一目录下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值