rachel/nova-image-cropper

Laravel Nova 字段。

dev-main 2021-01-31 10:38 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:18 UTC


README

此字段扩展了图片字段,增加了便捷的裁剪功能来处理图片。可以像在 Nova 中的文件字段一样配置。

演示

Demo

安装

在您的 nova 项目中运行以下命令: composer require rachel/nova-image-cropper

添加到您的 Nova 资源

use Rachel\NovaImageCropper\ImageCropper;

ImageCropper::make('Photo'),

更新表单

为了编辑模型中已保存的现有图片,ImageCroper 使用预览方法返回一个 base64 编码的图片。您可以使用默认实现,也可以覆盖它,只要返回一个 base64 图片即可。

use Rachel\NovaImageCropper\ImageCropper;

ImageCropper::make('Photo')
        ->preview(function () {
            if (!$this->value) return null;

            $url = Storage::disk($this->disk)->url($this->value);
            $filetype = pathinfo($url)['extension'];
            return 'data:image/' . $filetype . ';base64,' . base64_encode(file_get_contents($url));
        });

选项

头像模式

您可以为预览和裁剪器添加圆形遮罩

ImageCropper::make('Photo')->avatar()

自定义宽高比

定义裁剪框的固定宽高比。默认情况下,裁剪框是自由比例。

  • 类型:数字
  • 默认:NaN
ImageCropper::make('Photo')->aspectRatio(16/9)

本地化

/resources/lang/vendor/nova 目录下对应的 xx.json 文件中设置您的翻译

...

  "Edit Image": "Editar Imagen",
  "Cancel Crop": "Cancelar Recorte",
  "Change Image": "Cambiar Imagen",
  "Done": "Hecho",
  "Click here or drop the file to upload": "Click aquí o arrastra el archivo para comenzar la subida"