Yii2第三方类库插件Imagine的安装和使用


Posted in PHP onJuly 06, 2017

Imagine

Imagine 是一个面向对象的 PHP 类库用于图片操作。这个类库能够处理一些常用到的操作如:调整大小、裁剪、应用过滤器等。

其Color类库可用于对任意对定的颜色生成RGB值。并且还提供一些方法来绘制图形如:圆弧,椭圆,线,片等。

此外,还可以利用一个灵活的字体类来加载任意字体文件,然后将文字插入到图片中。

Imagine 是一个会经常更新的类库,将来还会实现:图表生成、圆角过滤器等功能。

Yii2 安装 Imagine

Imagine 的手动下载和安装这里就不做介绍了,可自行百度。这里介绍 Yii2 的 Composer 方式来安装 Imageine。

方法一

php composer.phar require --prefer-dist yiisoft/yii2-imagine

方法二

在项目 composer.json 文件内的 require 字段里添加如下代码:

"yiisoft/yii2-imagine": "~2.1.0"

然后再项目根目录下执行命令(cmd):

composer require yiisoft/yii2-imagine

Yii2 使用 Imagine

use yii\imagine\Image;

$srcImg = Yii::getAlias('@webroot/test.jpg');
$aimImg = Yii::getAlias('@webroot/testdeal.jpg');
$srcTTF = Yii::getAlias('@webroot/img/symbol.ttf');

// 缩略
// 参数 inset 表示定框缩略
// 图片完整缩略在 200x100 的框内
// 备注:定框的宽度或高度必须有一个小于图片的实际尺寸,否则直接返回源图尺寸
Image::thumbnail($srcImg, 200, 100, 'inset')->save($aimImg, ['quality'=>100]);

// 缩略
// 参数 outbound 表示单尺寸优先缩略并居中截取
// 该参数为函数的默认值,它会为您尽可能多的截取图片但又不会超出图片范围
// 例:源图 500x200,那么按照高度 100 缩略(变为250x100),然后再居中截取 200x100
// 例:源图 400x350,那么按照宽度 200 缩率(变为200x175),然后再居中截取 200x100
// 例:源图 100x80,那么不缩率不截取,直接返回源图 100x80
Image::thumbnail($srcImg, 200, 100, 'outbound')->save($aimImg, ['quality'=>100]);

// 缩略
// 按宽度 200 缩略,高度自适应
Image::thumbnail($srcImg, 200, null)->save($aimImg, ['quality'=>100]);

// 缩略
// 按高度 100 缩略,宽度自适应
Image::thumbnail($srcImg, null, 100)->save($aimImg, ['quality'=>100]);

// 剪切
// 参数:源图、宽度、高度、起始点
// 将源文件 $srcImg 保存到 $aimImg
Image::crop($srcImg, 400, 200, [100,100])->save($aimImg);

// 旋转
// 未研究
Image::frame('@webroot/img/test-image.jpg', 5, '666', 0)->rotate(-8)->save(Yii::getAlias('@webroot/img/thumb-test-frame.jpg'), ['quality' => 100]);

// 水印
// 未研究
Image::watermark('@webroot/img/test-image.jpg', '@webroot/img/watermark.jpg', [10,10])->save(Yii::getAlias('@webroot/img/thumb-test-watermark.jpg'), ['quality' => 100]);

// 文字水印
// 参数:源图、文字、字体、起始点、字体配置
Image::text($srcImg, 'hello world', $srcTTF, [100,100] ,['color'=>'000000','size'=>50])->save($aimImg, ['quality'=>100]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
生成php程序的php代码
Apr 07 PHP
PHP XML数据解析代码
May 26 PHP
php调用mysql数据 dbclass类
May 07 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
19个Android常用工具类汇总
Dec 30 PHP
php判断访问IP的方法
Jun 19 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
PHP实现GIF图片验证码
Nov 04 PHP
yii数据库的查询方法
Dec 28 PHP
PHP编写简单的App接口
Aug 28 PHP
php生成图片缩略图功能示例
Feb 22 PHP
一个实用的php验证码类
Jul 06 #PHP
万能的php分页类
Jul 06 #PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 #PHP
php文件上传类的分享
Jul 06 #PHP
PHP图片水印类的封装
Jul 06 #PHP
php生出随机字符串
Jul 06 #PHP
PHP实现的分页类定义与用法示例
Jul 05 #PHP
You might like
PHP脚本的10个技巧(3)
2006/10/09 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
快速了解python leveldb
2018/01/18 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
详解Python的三种可变参数
2019/05/08 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
NumPy排序的实现
2020/01/21 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
毕业生求职推荐信
2013/11/04 职场文书
给实习单位的感谢信
2014/02/01 职场文书
新年晚会主持词
2014/03/24 职场文书
党员岗位承诺书
2014/03/25 职场文书
法人授权委托书范本
2014/09/17 职场文书
毕业生评语大全
2015/01/04 职场文书
教师求职自荐信范文
2015/03/04 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
学习心得体会
2019/06/20 职场文书