Yii2第三方类库插件Imagine的安装和使用

发布时间 - 2026-01-11 02:13:21    点击率:

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]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Yii2  # Imagine安装  # Imagine使用  # Imagine  # 从零开始学YII2框架(一)通过Composer安装Yii2框架  # 从零开始学YII2框架(二)通过 Composer 安装扩展插件  # Yii学习总结之安装配置  # Yii入门教程之Yii安装及hello world  # 使用Composer安装Yii框架的方法  # 详解PHP的Yii框架中扩展的安装与使用  # yii2安装详细流程  # win7安装php框架Yii的方法  # Yii安装与使用Excel扩展的方法  # Yii安装EClientScript插件扩展实现css  # js文件代码压缩合并加载功能  # Yii框架安装简明教程  # 然后再  # 是一个  # 类库  # 自适应  # 起始点  # 还可以  # 还会  # 为您  # 不做  # 等功能  # 但又  # 它会  # 方法来  # 大家多多  # 面向对象  # 能多  # 有一个  # 默认值  # 圆角  # 加载 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  简单实现jsp分页  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何快速生成凡客建站的专业级图册?  详解Android——蓝牙技术 带你实现终端间数据传输  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  三星网站视频制作教程下载,三星w23网页如何全屏?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  想要更高端的建设网站,这些原则一定要坚持!  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  详解Oracle修改字段类型方法总结  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  html如何与html链接_实现多个HTML页面互相链接【互相】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何有效防御Web建站篡改攻击?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何创建自定义中间件?(Middleware代码示例)  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  怎样使用JSON进行数据交换_它有什么限制  中山网站推广排名,中山信息港登录入口?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  ,交易猫的商品怎么发布到网站上去?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何在阿里云域名上完成建站全流程?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  深圳网站制作的公司有哪些,dido官方网站?  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何实现API速率限制?(Rate Limiting教程)  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  如何在阿里云ECS服务器部署织梦CMS网站?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  node.js报错:Cannot find module 'ejs'的解决办法  Laravel如何优化应用性能?(缓存和优化命令)  网站制作企业,网站的banner和导航栏是指什么?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何为不同团队 ID 动态生成多个非值班状态按钮  打造顶配客厅影院,这份100寸电视推荐名单请查收