ThinkPHP v3.2.2添加水印

ThinkPHP v3.2.2和v3.1的差别还是不小的,添加水印方法也有区别,3.1的就不在赘述,简单说一下3.2的添加水印方法。

因为涉及到上传图片所以要先引入上传类和图片处理类,下面这两个要引入。


 

use Think\Upload;
use Think\Image;

然后就是处理上传图片


/**
 * 处理上传图片,添加水印
 * @param 	string 	$img_path	上传图片路径
 * @param 	Object 	$info		上传成功之后返回数据
 * @param 	Object 	$data		Ueditor接收json格式数据
 */
	public function upload(){
		$upload = new Upload();					//实例化Upload类
		$info = $upload->upload(I('.post'));	//上传图片
		$img = new Image();						//实例化图片处理类

		$img_path = './Uploads/' . $info['upfile']['savepath'] . $info['upfile']['savename'];
		$img->open($img_path);					//打开上传的图片
		$img->water('./Uploads/water/logo.png')->save($img_path);//添加水印
		if (!$info) {
			echo '上传失败!';
		}else{
			$data = array(
				'originalName'	=>	$info['upfile']['name'],
				'name'			=>	$info['upfile']['savename'],
				'url'			=>	'./Uploads/' . $info['upfile']['savepath'] . $info['upfile']['savename'],
				'size'			=>	$info['upfile']['size'],
				'type'			=>	'.' . $info['upfile']['ext'],
				'state'			=>	"SUCCESS",
			);
			$data = json_encode($data);			//格式化为json
			echo $data;
		}
	}

相比v3.1,主要改变在:必须先使用

open

方法打开图片才能处理,使用

water

方法后使用

save

方法保存,其中water方法有两个参数,具体的可以参考Image.class.php文件查看。