承接 one-strive/nova-image-cropper 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

one-strive/nova-image-cropper

最新稳定版本:5.0.0

Composer 安装命令:

composer require one-strive/nova-image-cropper

包简介

An advanced image field for Nova with crop and resize. Security-focused fork addressing critical JS dependency vulnerabilities.

README 文档

README

Security Update Notice: This package is a security-focused fork of ultrasimplified/nova5-image-cropper. It addresses critical security vulnerabilities in JavaScript dependencies, specifically removing the vulnerable vue-template-compiler package and updating the build configuration for Vue 3 compatibility. Full credit goes to the original authors listed below.

This package provides an advanced image field for Nova 5 resources allowing you to upload, crop and resize any image. It uses Cropper.js with vue-cropperjs in the frontend and Intervention Image in the backend.

This version has been updated to use the current v3 build of Intervention/Image and has increased compatibility with Laravel Nova version 5.

What's Different in This Fork

This security-focused fork includes the following updates:

  • Removed vulnerable dependencies: Eliminated vue-template-compiler (XSS vulnerability CVE-2024-9506)
  • Zero vulnerabilities: All npm security audits pass with 0 vulnerabilities

screenshot of the advanced image field

Requirements

This package requires one of the following libraries:

  • GD Library >=2.0 (used by default)
  • Imagick PHP extension >=6.5.7

See Intervention requirements for more details.

Installation

Install the package into a Laravel application with Nova using Composer:

composer require one-strive/nova-image-cropper

If you want to use Imagick as the default image processing library, follow the Intervention documentation for Laravel.

TL;DR: run the following command in the root folder of your site.

php artisan vendor:publish --provider="Intervention\Image\Laravel\ServiceProvider"

This will provide you with a new configuration file (config/image.php) where you can specify your preferred driver.

Usage

ImageCropper extends from File so you can use any methods that File implements. See the documentation here.

<?php

namespace App\Nova;

// ...
use OneStrive\NovaImageCropper\ImageCropper;

class Post extends Resource
{
    // ...

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

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

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

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

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

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

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

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

            // Convert the file to a different format
            ImageCropper::make('photo')
                ->convert('webp')

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

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

The resize option uses Intervention Image resize() with the upsize and aspect ratio constraints.

Security

If you discover any security related issues, please email robin@ultrasimplified.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 19
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: Vue

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-05