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制作静态网站的模板框架
Oct 09 PHP
PHP数据库开发知多少
Oct 09 PHP
如何在WIN2K下安装PHP4.04
Oct 09 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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中的字符串函数
2006/11/24 PHP
php 过滤器实现代码
2010/08/09 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
python制作最美应用的爬虫
2015/10/28 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python_LDA实现方法详解
2017/10/25 Python
Python金融数据可视化汇总
2017/11/17 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python列表(List)知识点总结
2019/02/18 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
怎样声明子类
2013/07/02 面试题
职务聘任书范文
2014/03/29 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis