javadle/gallery

一个 Laravel Nova 字段。

安装: 12

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

语言:Vue

1.0.0 2023-07-18 16:18 UTC

This package is auto-updated.

Last update: 2024-09-18 18:48:03 UTC


README

Gallery 是一个 Laravel Nova 字段包,允许进行图像处理功能,如裁剪、调整大小、质量调整和 WebP 转换。它使用强大的 Intervention Image 类进行图像处理。此包的目的是通过将其转换为 WebP 格式来优化图像以供网络使用,该格式提供更优越的压缩和更快的加载时间。

使用 Images Magic 实现高级图像处理,简单易用

✅ 单个/多个上传
✅ 裁剪
✅ 调整大小
✅ 适配
✅ 质量控制
✅ WebP 转换
✅ 水印
✅ 自定义目录

要求

  • PHP (^7.1 或更高版本)
  • Laravel Nova (^4.0 或更高版本)

🚀 安装

通过 Composer 安装此包。

composer require ayvazyan10/nova-Gallery

📚 使用方法

以下是在 Laravel Nova 应用程序中使用 Gallery 的示例:在您的 Laravel Nova 资源中,使用 Gallery 字段

use Gallery;

public function fields(Request $request)
{
    return [
        // ...

        Gallery::make('Image', 'image'),

        // ...
    ];
}

⚡ 所有方法

Gallery::make('Image')
    ->multiple()
    ->crop($width, $height, $left = 0, $top = 0)
    ->resize($width, $height)
    ->fit($width, $height)
    ->quality($quality)
    ->directory($path)
    ->convert($convert = true)
    ->watermark($path, $position = 'bottom-right', $x = 0, $y = 0);

📖 示例

以下是一些不同场景的示例。

- 多张图片

要启用多张图片上传,请使用 multiple() 方法。请注意,当您使用 multiple() 方法时,您的数据库列应类型为 text、longtext 或 json,以便以 JSON 格式存储所有图片。此外,您将能够通过拖放对上传的图片进行排序。

Gallery::make('Images')->multiple(),

- 裁剪

要裁剪图片,请使用 crop() 方法

Gallery::make('Image')->crop($width, $height, $left, $top),

- 调整大小

要调整图片大小,请使用 resize() 方法

Gallery::make('Image')->resize($width = int|null, $height = int|null),

- 质量

要调整图像质量,请使用 quality() 方法:默认为 90

Gallery::make('Image')->quality(90),

- WebP 转换

要将图片转换为 WebP 格式,请使用 convert() 方法
默认情况下,图像将被转换为 WebP 格式。要禁用转换,请将 false 传递给 convert() 方法

Gallery::make('Image')->convert(false),

- 适配

当在 Nova 资源中定义 Gallery 字段时,您可以使用 fit() 方法

Gallery::make('Image')->fit($width, $height),

- 带水印的字段

将 /path/to/watermark.png 替换为您水印图像的实际路径。
这将向具有指定路径、位置和偏移量(本例中为从右下角 15x15 像素)的图片添加水印。请记住在您的 Nova 资源文件顶部导入 Gallery 类

Gallery::make('Image')->watermark('/path/to/watermark.png', 'bottom-right', 15, 15),

- 目录自定义

默认情况下 - Gallery 使用以下结构:/storage/Gallery/year/month/day/image_name.webp

Gallery 类包含一个 directory() 方法,允许您指定一个自定义的目录路径来上传图片。这允许您更灵活地管理图像文件的位置。

要使用此功能,请在创建 Gallery 字段时调用 directory() 方法,并为其提供一个自定义目录路径作为参数。此路径应为字符串,不应以 / 开头或结尾。

以下是如何使用的示例

Gallery::make('Image')->directory('your/custom/directory')

在此示例中,通过此字段上传的所有图片将保存在您的/custom/directory。

注意:提供的目录路径不应以 / 开头或结尾。如果它这样做,将会抛出 InvalidArgumentException。确保在使用此功能时目录路径格式正确。

例如,以下代码将抛出异常

// This will throw an exception because the directory path starts with a '/'
// Directory structure should not start or end with a slash. Only in the middle.
Gallery::make('Image')
    ->directory('/invalid/directory/path')

贡献

有关详细信息,请参阅 contributing.md

安全

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

作者

许可证

麻省理工学院。请参阅许可文件获取更多信息。