insitaction / easycrop
Requires
- easycorp/easyadmin-bundle: ^4
- symfony/config: ^6.0|^7.0
- symfony/dependency-injection: ^6.0|^7.0
- symfony/http-kernel: ^6.0|^7.0
- symfony/mime: ^7.0
- symfony/stimulus-bundle: ^2.13
Requires (Dev)
README
EasyCrop Bundle
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的多选选项。
使用方法
- 添加到 bundle.php
#bundles.php return [ Insitaction\EasyCropBundle\EasyCropBundle::class => ['all' => true], Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true], ];
- 在 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 许可证。
