您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-图片处理
发布时间:2018-06-14 21:54:11编辑:雪饮阅读()
同样依赖于:
use think\Validate;
模板中如:
<form method="post" enctype="multipart/form-data" action="{:url('picture')}">
<p>选择图像文件:<input type="file" name="image22"/></p>
<p>选择处理类型:</p>
<select name="type">
<option value="1" selected>图片裁剪</option>
<option value="2" selected>生成缩略图</option>
<option value="3" selected>垂直翻转</option>
<option value="4" selected>水平翻转</option>
<option value="5" selected>图片旋转</option>
<option value="6" selected>添加图片水印</option>
<option value="7" selected>添加文字水印</option>
</select>
<p><input type="submit" value="提交"/></p>
</form>
控制器上对应方法如:
public function picture(Request $request){
$file=input('file.image22');
if(true !==$this->validate(['image22'=>$file],['image22'=>'require|image'])){
$this->error("请选择图像文件");
}
else{
$image=Image::open($file);
}
//图片处理
switch ($request->param('type'))
{
case 1:
//图片裁剪crop(裁剪宽度,裁剪高度,x坐标(默认0),y坐标(默认0)
$image->crop(300,300,200,200);
break;
case 2:
//缩略图thumb(最大宽度,最大高度,裁剪类型)
$image->thumb(150,150,Image::THUMB_CENTER);
break;
case 3:
//垂直翻转
$image->flip();
break;
case 4:
//水平翻转(垂直翻转Image::FLIP_X=1,水平翻转Image::FLIP_Y=2)
$image->flip(Image::FLIP_Y);
break;
case 5:
//图片旋转rotate(顺时针旋转的度数)
$image->rotate(30);
break;
case 6:
//图片水印water(水印图片,水印位置常量(默认右下角),水印透明度(默认100))
$image->water(ROOT_PATH.'logo.png',Image::WATER_NORTHWEST,50);
break;
case 7:
//文字水印 text(水印文字,字体文件路径,文字大小,文字颜色,文字写入位置,偏移量,文字倾斜角度)
$image->text('TPshop',VENDOR_PATH.'topthink/think-captcha/assets/ttfs/1.ttf',20,'#ffffff');
break;
}
//保存图片(以当前时间戳)
$saveName=time().'.png';
$image->save(ROOT_PATH.'public/uploads/'.$saveName);
$this->success('图片处理完毕...','/uploads/'.$saveName,1);
}
关键字词:thinkphp5,图片处理
下一篇:thinkphp5学习笔记-附件