javadle / gallery
一个 Laravel Nova 字段。
Requires
- php: ^7.3|^8.0
- intervention/image: ^2.7
Suggests
- ext-exif: Install the exif extension to orientate images automatically.
- ext-gd: Install the GD extension to process images using GD.
- ext-imagick: Install the Imagick extension to process image using ImageMagick.
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 而不是使用问题跟踪器。
作者
许可证
麻省理工学院。请参阅许可文件获取更多信息。