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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
一个颜色轮换的简单例子
Oct 09 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
PHP5.3新特性小结
Feb 14 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
php分享朋友圈的实现代码
Feb 18 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
php打造属于自己的MVC框架
2012/03/07 PHP
php中引用符号(&)的使用详解
2013/11/13 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
用JQUERY增删元素的代码
2012/02/14 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
python记录程序运行时间的三种方法
2017/07/14 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
美丽家庭事迹材料
2014/05/03 职场文书
人事任命书格式
2014/06/05 职场文书
批评与自我批评范文
2014/10/15 职场文书
任命书格式范文
2015/09/22 职场文书
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技