diff --git a/README.md b/README.md index 7d4a0c7..6c0fa3f 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,25 @@ You can customize the views for each component, by changing the view in `resourc The _Embeds_ tool is triggered by pasting URLs to embeddable content. It does not have an entry in the "Add" menu. +### Changing the image driver + +You may change the image driver (default Imagick) via the configuration like so: + +```php +return [ + 'toolSettings' => [ + 'image' => [ + 'imagedriver' => Spatie\Image\Enums\ImageDriver::Gd, + // ... + ], + // ... + ], + // ... +]; +``` + +Any option set here must be of type `Spatie\Image\Enums\ImageDriver`. + ### Registering custom components Please refer to the [extending Nova EditorJS](./EXTENDING.md) guide on instructions on how to register custom diff --git a/src/Http/Controllers/EditorJsImageUploadController.php b/src/Http/Controllers/EditorJsImageUploadController.php index fa6a5e9..a55c3ea 100644 --- a/src/Http/Controllers/EditorJsImageUploadController.php +++ b/src/Http/Controllers/EditorJsImageUploadController.php @@ -129,7 +129,12 @@ public function url(Request $request): JsonResponse private function applyAlterations($path, $alterations = []) { try { - $image = Image::load($path); + if (! empty(config('nova-editor-js.toolSettings.image.imagedriver'))) { + $image = Image::useImageDriver(config('nova-editor-js.toolSettings.image.imagedriver')); + $image->loadFile($path); + } else { + $image = Image::load($path); + } $imageSettings = config('nova-editor-js.toolSettings.image.alterations'); diff --git a/src/config/nova-editor-js.php b/src/config/nova-editor-js.php index 4d4a0a0..f0c0108 100644 --- a/src/config/nova-editor-js.php +++ b/src/config/nova-editor-js.php @@ -41,6 +41,7 @@ 'shortcut' => 'CMD+SHIFT+I', 'path' => 'public/images', 'disk' => 'local', + 'imagedriver' => Spatie\Image\Enums\ImageDriver::Imagick, 'alterations' => [ 'resize' => [ 'width' => false, // integer