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 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
一个简单的PHP&MYSQL留言板源码
Jul 19 PHP
MySQL数据源表结构图示
Jun 05 PHP
php表单提交问题的解决方法
Apr 12 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP实现简易计算器功能
Aug 28 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
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
php字符串截取的简单方法
2013/07/04 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
python flask 多对多表查询功能
2017/06/25 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python变量命名的7条建议
2019/07/04 Python
室内设计专业个人的自我评价
2013/10/19 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
优秀大学生自荐信
2015/03/26 职场文书
货款欠条范本
2015/07/03 职场文书
初中思品教学反思
2016/02/20 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
HTML中的表格元素介绍
2022/02/28 HTML / CSS
如何利用golang运用mysql数据库
2022/03/13 Golang