atmden/img-fly

ATMDEN 为 Laravel >7 动态调整图像大小

dev-master 2022-04-20 17:41 UTC

This package is not auto-updated.

Last update: 2024-09-20 02:57:24 UTC


README

Screenshot

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

依赖项(必需)

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

贡献

有关详细信息,请参阅 CONTRIBUTINGCONDUCT

安全

如果您发现任何安全问题,请通过电子邮件 shawnsandy04@gmail.com 而不是使用问题跟踪器。

鸣谢

  • [Shawn Sandy][link-author]

待办事项

  • 添加图像上传 UI
  • 添加单元测试

许可证