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 相关文章推荐
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
php判断当前操作系统类型
Oct 28 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
PHP session垃圾回收机制实例分析
Jun 28 PHP
laravel 时间格式转时间戳的例子
Oct 11 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 文章调用类代码
2011/08/11 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python控制台英汉汉英电子词典
2020/04/23 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python返回数组/List长度的实例
2018/06/23 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
详解python tcp编程
2020/08/24 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
自立自强的名人事例
2014/02/10 职场文书
授权委托书怎么写
2014/04/03 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
vue router 动态路由清除方式
2022/05/25 Vue.js