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中对数据库操作的封装
Oct 09 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
解析php中获取系统信息的方法
Jun 25 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP经典面试题集锦
Mar 19 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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自动验证失败的解决方法
2011/06/09 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
Python常用小技巧总结
2015/06/01 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Python异常处理操作实例详解
2018/05/10 Python
详解Python字典的操作
2019/03/04 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
python3排序的实例方法
2020/10/20 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
我爱我的祖国演讲稿
2014/05/04 职场文书
啤酒节策划方案
2014/05/28 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
工程服务质量承诺书
2015/04/29 职场文书
何玥事迹观后感
2015/06/16 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL