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水印技术
Feb 14 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
PHP插入排序实现代码
Apr 04 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
PHP实时统计中文字数和区别
Feb 28 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 mongodb扩展时 需要注意的事项
2013/06/18 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
splice slice区别
2006/10/09 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
微信小程序自定义组件
2017/08/16 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python实现简单的代理服务器
2015/07/25 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
招商业务员岗位职责
2013/12/16 职场文书
教学实习自我评价
2014/01/28 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
宣传口号大全
2014/06/16 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js