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和ACCESS写聊天室(七)
Oct 09 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
php实现过滤UBB代码的类
Mar 12 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
php中 $$str 中 "$$" 的详解
Jul 06 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
微信支付之JSAPI公众号支付详解
May 15 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调用三种数据库的方法(1)
2006/10/09 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
webpack打包js的方法
2018/03/12 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
python制作简单五子棋游戏
2019/06/18 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
python实现简易淘宝购物
2019/11/22 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
农贸市场管理制度
2014/01/31 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
证婚人致辞精选
2015/07/28 职场文书
大学学生会竞选稿
2015/11/19 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
Python 匹配文本并在其上一行追加文本
2022/05/11 Python