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静态类
Nov 25 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
cakephp打印sql语句的方法
Feb 13 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
PHP实现微信提现功能
Sep 30 PHP
php文件包含的几种方式总结
Sep 19 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php仿ZOL分页类代码
2008/10/02 PHP
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
Javascript----文件操作
2007/01/18 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Python中函数参数调用方式分析
2018/08/09 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
实现向右循环移位
2014/07/31 面试题
优秀员工自荐信范文
2013/10/05 职场文书
法律工作求职自荐信
2013/10/31 职场文书
服装设计专业毕业生推荐信
2013/11/09 职场文书
求职信范文英文版
2014/01/05 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
入党自我鉴定
2014/03/25 职场文书
英文请假条
2014/04/11 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
自荐信模板大全
2015/03/27 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
Java实现简易的分词器功能
2021/06/15 Java/Android
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang