Yii 使用intervention/image拓展实现图像处理功能


Posted in PHP onJune 22, 2019

一:安装intervention/image拓展

composer require intervention/image

二:上传文件

\Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->save('upload.jpg');//file为上传表单的name名
\Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->resize(300, 200)->save('upload.jpg');//file为上传表单的name名,并将上传的图片压缩成300,200

同时实现单图上传和多图上传

if ($_FILES['file']) {
  $image = $_FILES['file']['tmp_name'];
  if (is_array($image)) {
    //多图上传
    foreach ($image as $key => $item) {
      \Intervention\Image\ImageManagerStatic::make($item)->save($key.'upload.jpg');
    }
  } else {
    //单图上传
    \Intervention\Image\ImageManagerStatic::make($image)->save('upload.jpg');
  }
}

三:添加水印

1:添加文字水印

添加文字水印主要使用到text方法

text方法参数说明

x(可选)

x定义第一个字符的基点。默认值:0

y(可选)

y定义第一个字符的基点。默认值:0

callback(可选)

关闭字体对象的回调,回调可配置:

(1)file:配置水印字体
(2)size:配置水印大小
(3)color:配置水印颜色
(4)align:配置水印水平对齐方式
(5)valign:配置是垂直对齐方式
(6)angle:配置水印旋转角度
例:

//水印
ImageManagerStatic::make('upload.jpg')->text('水印文字',20,30,function($font){
  //配置水印字体
  $font->file(\Yii::getAlias('@webroot') . '/simsun.ttc');
  //配置水印大小
  $font->size(30);
  //配置水印颜色
  $font->color('#fff');
  //配置水印水平居左( left, right and center)
  $font->align('left');
  //配置水印垂直居下(top, bottom and middle)
  $font->valign('bottom');
  //配置水印旋转角度
  $font->angle(45);
})->save('uploadWater.jpg');

2:添加图片水印

添加图片水印主要使用到insert方法

insert方法参数说明:

source:水印图片地址

position:设置插入图像的位置,参数可配置项为:

(1)top-left (default)
(2)top
(3)top-right
(4)left
(5)center
(6)right
(7)bottom-left
(8)bottom
(9)bottom-right

x:水平偏移量,默认0

y:垂直偏移量,默认0

例:

ImageManagerStatic::make('upload.jpg')->insert('water.jpg','bottom-left',10,10)->save('uploadWater.jpg');

这里是intervention/image拓展的一些基本操作,详细可以参考: http://image.intervention.io/

总结

以上所述是小编给大家介绍的Yii 使用intervention/image拓展实现图像处理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

PHP 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
PHP技术开发技巧分享
Mar 23 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP6 中可能会出现的新特性预览
Apr 04 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
Oct 26 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 #PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 #PHP
PHP判断函数是否被定义的方法
Jun 21 #PHP
php用户名的密码加密更安全的方法
Jun 21 #PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 #PHP
php精度计算的问题解析
Jun 21 #PHP
laravel异步监控定时调度器实例详解
Jun 21 #PHP
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
资料员岗位职责
2013/11/17 职场文书
《长相思》听课反思
2014/04/10 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
学习心理学的体会
2014/11/07 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
部门主管竞聘书
2015/09/15 职场文书