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开发中常用的字符串操作函数
Feb 08 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
PHP基于面向对象封装的分页类示例
Mar 15 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
sphinx增量索引的一个问题
2011/06/14 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
PHP webshell检查工具 python实现代码
2009/09/15 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
小学生期末评语大全
2014/04/21 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
法定代表人授权委托书
2014/09/19 职场文书
未婚证明书模板
2014/10/08 职场文书
部门2014年度工作总结
2014/11/12 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
大队委员竞选稿
2015/11/20 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle