marshmallow/nova-advanced-image

Nova的高级图片字段,支持裁剪和缩放。


README

此软件包为Nova资源提供了一个高级图片字段,允许您上传、裁剪和缩放任何图片。它在前端使用Cropper.jsvue-cropperjs,在后端使用Intervention Image

screenshot of the advanced image field

要求

此软件包需要以下库之一

  • GD库 >=2.0(默认使用)
  • Imagick PHP扩展 >=6.5.7

有关详细信息,请参阅Intervention要求

安装

使用Composer将软件包安装到使用Nova的Laravel应用程序中

composer require marshmallow/nova-advanced-image

如果您想使用Imagick作为默认的图片处理库,请遵循Intervention Laravel文档。这将为您提供一个新的配置文件,您可以在其中指定您想要的驱动程序。

用法

AdvancedImage 继承自 File,因此您可以使用任何File实现的函数。请参阅此处的文档。

<?php

namespace App\Nova;

// ...
use Marshmallow\AdvancedImage\AdvancedImage;

class Post extends Resource
{
    // ...

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

            // Simple image upload
            AdvancedImage::make('photo'),

            // Show a cropbox with a free ratio
            AdvancedImage::make('photo')->croppable(),

            // Show a cropbox with a fixed ratio
            AdvancedImage::make('photo')->croppable(16/9),

            // Resize the image to a max width
            AdvancedImage::make('photo')->resize(1920),

            // Resize the image to a max height
            AdvancedImage::make('photo')->resize(null, 1080),

            // Show a cropbox and resize the image
            AdvancedImage::make('photo')->croppable()->resize(400, 300),

            // Override the image processing driver for this field only
            AdvancedImage::make('photo')->driver('imagick')->croppable(),

            // Store to AWS S3
            AdvancedImage::make('photo')->disk('s3'),

            // Specify a custom subdirectory
            AdvancedImage::make('photo')->disk('s3')->path('image'),
        ];
    }
}

使用 resize 选项时,会使用Intervention Image resize(),并具有放大和宽高比约束。

安全

如果您发现任何与安全相关的问题,请发送电子邮件至stef@marshmallow.dev,而不是使用问题跟踪器。

致谢

许可

MIT许可(MIT)。请参阅许可文件获取更多信息。