Thinkphp5学习(35)图像处理
来源:互联网 发布:石家庄手机数据恢复 编辑:程序博客网 时间:2024/05/18 13:24
学习内容:
https://www.kancloud.cn/tpshop/thinkphp5/233345
完全开发手册:
https://www.kancloud.cn/manual/thinkphp5/177530
教程中的代码:https://github.com/phpervip/tp5a
代码示例:
<?phpnamespace app\index\controller;use think\Controller;use think\Request;use think\Image;class Upload extends Controller{ public function picture(Request $request){ $file = $request->file('image'); if(true !== $this->validate(['image'=>$file],['image'=>'require|image'])){ $this->error('请选择图像文件'); }else{ // var_dump($request);exit; $image = Image::open($file); switch($request->param('type')){ case 1:// 图片裁剪 $image->crop(300,300); break; case 2:// 缩略图 $image->thumb(60,60,Image::THUMB_CENTER); break; case 3:// 垂直翻转 $image->flip(); break; case 4:// 水平翻转 $image->flip(Image::FLIP_Y); break; case 5:// 图片旋转 $image->rotate(30); break; case 6:// 图片水印 $image->water('./uploads/20170724/logo_v2.png',Image::WATER_NORTHWEST,50); break; case 7:// 文字水印 $image->text('THINKPHP',VENDOR_PATH.'topthink/think-captcha/assets/ttfs/1.ttf',20,'#ffffff'); break; } $saveName = $request->time().'.png'; $image->save(ROOT_PATH.'public/uploads/'.$saveName); $this->success('图像处理完毕...','/uploads/'.$saveName,1); } }}
模板文件:
注意:测试时,应找一张不对称的图片,更好的看到效果。
例:
<h2>图像上传和处理示例</h2><FORM method="post" enctype="multipart/form-data" class="form" action="{:url('picture')}"> 选择图像文件:<INPUT type="file" class="file" name="image"><br/> 选择处理类型:<SELECT name="type"> <option value="1" selected>图片裁剪 <option value="2">生成缩略图 <option value="3">垂直翻转 <option value="4">水平翻转 <option value="5">图片翻转 <option value="6">添加图片水印 <option value="7">添加文字水印 </SELECT> <INPUT type="submit" class="btn" value=" 提交 "></FORM><div class="copyright"> <a title="官方网站" href="http://www.thinkphp.cn">ThinkPHP</a> <span>V5</span> <span>{ 十年磨一剑-为API开发设计的高性能框架 }</span></div>
图片裁剪
图片剪裁使用crop方法,用法:
crop(剪裁宽度,剪裁高度,X坐标(默认0),Y坐标(默认0))
示例中图片剪裁的主要代码为
$image->crop(300, 300);
生成缩略图
生成图片缩略图使用thumb方法,用法:
thumb(最大宽度,最大高度,裁剪类型)
缩略图剪裁类型包括如下:
图像翻转
图片翻转使用flip方法,用法如下:
flip(翻转方式)
翻转方式 常量值
垂直翻转 Image::FLIP_X=1
水平翻转 Image::FLIP_Y=2
图片旋转
图片翻转使用rotate方法,用法如下:
rotate(顺时针旋转的度数)
添加水印
使用water方法添加图片水印
water(水印图片,水印位置常量(默认右下角),水印透明度(默认100))
水印位置常量如下:
示例代码:
$image->water(‘./logo.png’, Image::WATER_NORTHWEST, 50);
文字水印
使用text方法给图片添加文字(水印)
text(水印文字,字体文件路径,文字大小,文字颜色,文字写入位置,偏移量,文字倾斜角度)
图片保存
前面所有的操作都是对图片进行相关的处理,最后一步就是需要把处理过的图片文件保存下来。
这就需要调用save方法进行图片的保存操作
save(保存文件名,图像类型,图像质量,隔行扫描)
- Thinkphp5学习(35)图像处理
- 图像处理学习
- 图像处理学习笔记
- 图像处理的学习
- 图像处理学习开始
- 图像处理学习1
- 图像处理学习资料
- 图像处理--机器学习
- Matlab GUI图像学习图像处理进阶
- thinkphp5学习笔记
- ThinkPHP5.0学习笔记
- ThinkPHP5 学习笔记
- thinkphp5学习入门
- ThinkPHP5.0版本学习
- thinkphp5学习笔记
- thinkPhP5学习笔记
- thinkphp5的入门学习
- 混沌图像处理学习系统
- SSH整合:Struts2+Spring+Hibernate
- OSG学习:裁剪变换(2)
- hexo+github+域名 搭建自己的博客
- 美国签证B2旅游所需材料清单
- 全局变量的替换方式
- Thinkphp5学习(35)图像处理
- Xcode无法启动虚拟机项目DTAssetProviderService... DTXConnection...
- 漫画告诉你什么是DDoS攻击?
- 内部类调用局部参数为何用final关键字
- struts2 之ognl表达式与值栈(03)
- SpringMVC札集(01)——SpringMVC入门完整详细示例(上)
- 【宏观】长期中的通货膨胀与货币
- Activity的4种启动模式
- 输入框延时调接口(防止不停调用)