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文件查看。