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实现验证码功能
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php date()日期时间函数详解
May 16 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
php编写简单的文章发布程序
Jun 18 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
基于PHP实现数据分页显示功能
May 26 PHP
PHP微信支付实例解析
Jul 22 PHP
PHP实现文件上传下载实例
Oct 18 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
JavaScript 字符串乘法
2009/08/20 Javascript
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
vue之数据交互实例代码
2017/06/16 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python中查看文件名和文件路径
2017/03/31 Python
Python实现读取json文件到excel表
2017/11/18 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
项目管理计划书
2014/01/09 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
民间借贷借条范本
2015/05/25 职场文书
门球健将观后感
2015/06/16 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python