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安装为Apache DSO
Oct 09 PHP
php SQL防注入代码集合
Apr 25 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP使用数组依次替换字符串中匹配项
Jan 08 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
PHP CURL使用详解
Mar 21 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
python os用法总结
2018/06/08 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
python 两个数据库postgresql对比
2019/10/21 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
中学生在校期间的自我评价分享
2013/11/13 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
青年教师培训方案
2014/02/06 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers