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中实现汉字转区位码应用源码实例解析
Jun 14 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
初品cakephp 入门基础
Feb 16 PHP
PHP的PSR规范中文版
Sep 28 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
PHP implode()函数用法讲解
Mar 08 PHP
详解Go与PHP的语法对比
May 29 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
javascript 获取图片颜色
2009/04/05 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
详解javascript函数的参数
2015/11/10 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python中super关键字用法实例分析
2015/05/28 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
Python之多进程与多线程的使用
2021/02/23 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
园林施工员岗位职责
2013/12/11 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
新闻稿怎么写
2015/07/18 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
JS数组去重详情
2021/11/07 Javascript