ctessier/nova-advanced-image-field

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

资助包维护!
ctessier

安装次数: 417,802

依赖者: 1

建议者: 0

安全: 0

星标: 100

关注者: 4

分支: 26

开放问题: 9

语言:Vue

v2.1.0 2023-08-28 20:12 UTC

README

StyleCI Latest Version on Packagist Total Downloads License

Nova 高级图像字段,允许您上传、裁剪和缩放图像

此包建立在原生 Nova 图像字段之上。它使用 Advanced Cropper 在前端显示裁剪器,并使用 Intervention Image 在后端处理图像。

screenshot of the advanced image field

要求

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

入门

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

composer require ctessier/nova-advanced-image-field

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

代码示例

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

// 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),

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

要显示图像为圆形头像,请使用 AdvancedAvatar 类或 rounded 方法

AdvancedAvatar::make('Avatar')->croppable(),
AdvancedImage::make('Avatar')->croppable()->rounded(),

API

driver(string $driver)

覆盖 Intervention 用于图像操作的默认驱动程序。

AdvancedImage::make('Photo')->driver('imagick'),

croppable([float $ratio])

指定底层图像是否可裁剪。

如果第一个参数是数值,它将用于定义裁剪框的固定宽高比。

AdvancedImage::make('Photo')->croppable(),
AdvancedImage::make('Photo')->croppable(16/9),

resize(int $width = null[, int $height = null])

指定图像应调整到的大小(宽度和高度)。

AdvancedImage::make('Photo')->resize(1920),
AdvancedImage::make('Photo')->resize(600, 400),
AdvancedImage::make('Photo')->resize(null, 300),

注意:此方法使用 Intervention Image resize(),带有放大和宽高比约束。

autoOrientate()

指定底层图像是否应定向。如果 Exif 数据中指定了方向,它将旋转图像。

在某些情况下,这可能对于裁剪器正常工作是强制性的。

AdvancedImage::make('Photo')->autoOrientate(),

注意:PHP 必须编译为 --enable-exif 以使用此方法。Windows 用户还必须启用 mbstring 扩展。请参阅 Intervention Image 文档 以获取更多详细信息。

quality(int $quality)

指定转换后图像的输出质量。

此操作仅适用于 JPG 格式,因为 PNG 压缩是无损的。值必须在 0(质量差,文件小)到 100(最佳质量,文件大)之间。

AdvancedImage::make('Photo')->resize(600, 400)->quality(95),

注意:质量将传递给 Intervention Image save() 方法。

convert(string $format)

指定所需的输出格式。

AdvancedImage::make('Photo')->convert('webp'),

注意:有关详细信息,包括允许的格式列表,请参阅 Intervention Image encode()