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程序之die调试法 快速解决错误
Sep 17 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
Yii快速入门经典教程
Dec 28 PHP
php实现留言板功能
Mar 05 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
详细分析PHP 命名空间(namespace)
Jun 30 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/05/07 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
Angular2库初探
2017/03/01 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
JavaScript类的继承操作实例总结
2018/12/20 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python入门篇之数字
2014/10/20 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
利用Python实现kNN算法的代码
2019/08/16 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
python Tensor和Array对比分析
2020/01/08 Python
Python远程linux执行命令实现
2020/11/11 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL