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 相关文章推荐
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
PHP 字符串分割和比较
Oct 06 PHP
php中的三元运算符使用说明
Jul 03 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
用php实现分页效果的示例代码
Dec 10 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
删除无限级目录与文件代码共享
2006/07/12 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Python中使用支持向量机SVM实践
2017/12/27 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Django 外键的使用方法详解
2019/07/19 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
实习护士自我鉴定
2013/10/13 职场文书
外贸实习生自荐信范文
2013/11/24 职场文书
高中体育教学反思
2014/01/29 职场文书
社区活动邀请函范文
2014/01/29 职场文书
《长征》教学反思
2014/04/27 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
介绍信怎么写
2015/05/05 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL