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 和 XML: 使用expat函数(二)
Oct 09 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
php类中private属性继承问题分析
Nov 01 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
php将session放入memcached的设置方法
Feb 14 PHP
ThinkPHP的Widget扩展实例
Jun 19 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 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
我常用的几个类
2006/10/09 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php解析json数据实例
2014/08/19 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
安装python及pycharm的教程图解
2019/10/10 Python
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
中科软笔试题和面试题
2014/10/07 面试题
Ajxa常见问题都有哪些
2014/03/26 面试题
法制教育演讲稿
2014/09/10 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
交通安全横幅标语
2014/10/07 职场文书
读后感作文评语
2014/12/25 职场文书
联谊会开场白
2015/06/01 职场文书
大国崛起英国观后感
2015/06/02 职场文书
联村联户简报
2015/07/21 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫