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设计模式之代理模式的深入解析
Jun 13 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
自制PHP框架之路由与控制器
May 07 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
Python安装selenium包详细过程
2019/07/23 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
浅谈python出错时traceback的解读
2020/07/15 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
医药专业推荐信
2013/11/15 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
《画》教学反思
2014/04/14 职场文书
生物学专业求职信
2014/07/23 职场文书
七一建党日演讲稿
2014/09/05 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书