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下载文件的代码示例
Jun 29 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
Smarty3配置及入门语法
Feb 22 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
UCenter 批量添加用户的php代码
2012/07/17 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
yii用户注册表单验证实例
2015/12/26 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
Python计算IV值的示例讲解
2020/02/28 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
劳资员岗位职责
2013/11/11 职场文书
交通事故私了协议书
2014/04/16 职场文书
见习报告的格式
2014/10/31 职场文书
2015年暑假工作总结
2015/07/13 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS