insitaction/easycrop

安装: 744

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 1

开放问题: 0

语言:TypeScript

类型:symfony-bundle

1.0.5 2023-12-04 11:03 UTC

This package is auto-updated.

Last update: 2024-09-11 14:49:31 UTC


README

Insitaction

EasyCrop Bundle

EasycropBundle

EasyCrop Bundle 是一个专门的 Symfony 扩展包,旨在无缝增强 EasyAdmin 的图片处理能力。此扩展包提供了一种简单的方法,将图像上传、裁剪和缩放功能集成到您的应用程序中。在核心上,EasyCrop Bundle 引入了一个名为 CropField 的自定义字段类型,精心制作以将裁剪和缩放功能带给 EasyAdmin 驱动的应用程序。此字段类型建立在 EasyCorp\Bundle\EasyAdminBundle\Field\ImageField 的基础上,增加了图像裁剪的便利性,同时保持与 EasyAdmin 的核心类的兼容性。

安装

您可以使用 Composer 安装 EasyCrop Bundle

composer require insitaction/easycrop

特性

此扩展包的主要特性是 CropField,它使用户能够上传图像并将其裁剪到所需的尺寸。核心功能通过 CropType 表单类型实现,这是 EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType 的一种变体。关键区别在于 CropType 通过 Stimulus 控制器引入了额外的逻辑。

⚠️ 目前不支持 CropField 的多选选项。

使用方法

  1. 添加到 bundle.php
#bundles.php

return [
    Insitaction\EasyCropBundle\EasyCropBundle::class => ['all' => true],
    Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
];
  1. 在 Easyadmin 中加载表单主题
    public function configureCrud(): Crud
    {
        return parent::configureCrud()
            ->addFormTheme('@EasyCrop/form_theme.html.twig')
            ;
    }

将 CropField 添加到您的 EasyAdmin 配置中

use Insitaction\EasyCropBundle\Field\CropField;

// ...

yield CropField::new('image', 'Image')
    ->setBasePath('/uploads/images/')
    ->setUploadDir('public/uploads/images/')
    ->setFormat('WEBP') // choices are 'PNG', 'JPEG', 'WEBP'.
    ->enableSizeValidation(true) // enable min size validation
    ->enableResize(true) // enable resize
    ->setHeight(600) // Set the desired height for resizing or validation
    ->setWidth(800)  // Set the desired width for resizing or validation
;

CropField 与现有的 EasyAdmin 配置无缝集成,允许用户在表单中直接上传和裁剪图像。幕后,CropType 表单类型利用 Stimulus 控制器与 react-cropper 交互以实现图像裁剪。一旦用户选择所需的裁剪区域,控制器将裁剪的图像转换为 Base64 字符串表示。

待办事项

Symfony 验证

Symfony 验证尚未实现,但将在未来的版本中引入。

多文件上传/裁剪

目前不支持 CropField 的多选选项,但将在未来的版本中引入。

版本

贡献

如果您遇到任何问题或想为 EasyCrop Bundle 做出贡献,请随意在 GitHub 仓库上创建拉取请求或提交问题。

许可证

EasyCrop Bundle 是开源软件,遵循 MIT 许可证。