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获取url的函数代码
Aug 02 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
PHP的cURL库简介及使用示例
Feb 06 PHP
php简单复制文件的方法
May 09 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
PHP开发实现快递查询功能详解
Apr 08 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
JAVA/JSP学习系列之二
2006/10/09 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
flexigrid 参数说明
2010/11/23 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python csv文件记录流程代码解析
2020/07/16 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
我的小天地教学反思
2014/04/30 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js