atmden / img-fly
ATMDEN 为 Laravel >7 动态调整图像大小
dev-master
2022-04-20 17:41 UTC
Requires
- php: >=7.4
- illuminate/support: 5.*|6.*|7.*|8.*
- league/glide-laravel: 1.*
Requires (Dev)
- phpstan/phpstan: ^0.9.0
This package is not auto-updated.
Last update: 2024-09-20 02:57:24 UTC
README
Laravel ImgFly
使用 thephpleague 的 Glide 库在您的 Laravel 应用中动态调整图像大小。
Glide 是一个用 PHP 编写的简单易用的按需图像处理库。它直观的 API 通过 HTTP 暴露,类似于 Imgix 和 Cloudinary 这样的云图像处理服务。Glide 利用像 Intervention Image(用于图像处理和操作)和 Flysystem(用于文件系统抽象)这样的强大库。
- 使用简单的基于 HTTP 的 API 调整、调整大小和添加图像效果。
- 处理过的图像会自动缓存,并使用超长的过期头提供。
- 创建自己的图像处理服务器或将 Glide 直接集成到您的应用中。
- 支持 GD 库和 Imagick PHP 扩展。
- 支持多种响应方法,包括 PSR-7、HttpFoundation 等。
- 能够使用 HTTP 签名保护图像 URL。
- 由于 Flysystem 库,可与许多不同的文件系统一起使用。
- 由经过实战考验的 Intervention Image 图像处理和操作库提供支持。
- 框架无关,可与任何项目一起使用。
- Composer 就绪且符合 PSR-2 规范。
- 获取更多信息 - glide.thephpleague.com
安装 Glide Laravel
通过 composer 仓库
- 通过在您的
composer.json
文件中添加以下内容来安装 composer 仓库中的包
"repositories": [
{
"type": "vcs",
"url": "https://github.com/shawnsandy/img-fly"
}
],
- 运行 composer require 以安装包
composer require shawnsandy/img-fly
在 Laravel 5.5 及更高版本中,包会自动安装。如果您正在运行 Laravel 5.4 或更早版本,请按照以下说明操作。
- 将提供者添加到您的
config\app.php
提供者。
ShawnSandy\ImgFly\ImgflyServiceProvider::class,
- 将外观添加到您的
config\app.php
别名。
"Imgfly" => ShawnSandy\ImgFly\Classes\ImgflyFacade::class,
路由
- 将路由添加到您的
routes\web.php
Imgfly::routes();
依赖项(必需)
- 安装 php league Laravel glide 包 信息和说明
composer require league/glide-laravel
用法
- 显示并调整来自您存储目录
storage/app/images
目录的图像的大小,w=500
将图像宽度设置为500
。
<img src="{{ Imgfly::imgFly('apple-mouse.jpeg?w=500') }}" alt="">
- 显示并调整来自您的
public/img
目录的图像的大小,w=500
将图像宽度参数设置为500
。有关设置其他参数(高度、裁剪、方向)的更多信息,请参阅 Glide 快速参考。
<img src="{{ Imgfly::imgPublic('hands.jpeg?w=500', 'img') }}" alt="">
预设
您还可以使用预设来动态调整图像大小。参数在 app/imgfly.php
配置中设置
- 发布配置文件
php artisan vendor:publish --tag=imgfly_config
- 打开并修改预设
[ "icon" => "?w=60&h=60&fit=crop-center", "small" => "?w=100&h=100&fit=crop-center", "thumbnail" => "?w=200&h=200&fit=crop-center", "medium" => "?w=600&h=400&fit=crop-center", "large" => "?w=1200&h=600&fit=crop-center", ];
- 调用外观
Imgfly::imgPreset(image, preset_key = small, callBackMethod = 'img/imgPublic')
<img src="{{ Imgfly::imgPreset('hands.jpg', 'icon') }}" alt=""> <img src="{{ Imgfly::imgPreset('hands.jpg', 'small') }}" alt=""> <img src="{{ Imgfly::imgPreset('hands.jpg', 'thumbnail') }}" alt="">
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CONDUCT。
安全
如果您发现任何安全问题,请通过电子邮件 shawnsandy04@gmail.com 而不是使用问题跟踪器。
鸣谢
- [Shawn Sandy][link-author]
待办事项
- 添加图像上传 UI
- 添加单元测试