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 文件系统详解
Sep 13 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
PHP中比较时间大小实例
Aug 21 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP-FPM实现性能优化
Mar 31 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
php对象工厂类完整示例
Aug 09 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实现WEB动态网页静态
2006/10/09 PHP
php中文本操作的类
2007/03/17 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
python对url格式解析的方法
2015/05/13 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python设置环境变量的原因和方法
2019/06/24 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
秋天的怀念教学反思
2014/04/28 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
关于长城的导游词
2015/01/30 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
VUE递归树形实现多级列表
2022/07/15 Vue.js