diff --git a/src/Drivers/Gd/Decoders/SplFileInfoImageDecoder.php b/src/Drivers/Gd/Decoders/SplFileInfoImageDecoder.php new file mode 100644 index 00000000..ae7a393d --- /dev/null +++ b/src/Drivers/Gd/Decoders/SplFileInfoImageDecoder.php @@ -0,0 +1,21 @@ +getRealPath()); + } +} diff --git a/src/Drivers/Gd/InputHandler.php b/src/Drivers/Gd/InputHandler.php index a23deeaa..0a484b8a 100644 --- a/src/Drivers/Gd/InputHandler.php +++ b/src/Drivers/Gd/InputHandler.php @@ -15,6 +15,7 @@ use Intervention\Image\Drivers\Gd\Decoders\BinaryImageDecoder; use Intervention\Image\Drivers\Gd\Decoders\DataUriImageDecoder; use Intervention\Image\Drivers\Gd\Decoders\Base64ImageDecoder; +use Intervention\Image\Drivers\Gd\Decoders\SplFileInfoImageDecoder; class InputHandler extends AbstractInputHandler { @@ -28,6 +29,7 @@ class InputHandler extends AbstractInputHandler HtmlColornameDecoder::class, FilePointerImageDecoder::class, FilePathImageDecoder::class, + SplFileInfoImageDecoder::class, BinaryImageDecoder::class, DataUriImageDecoder::class, Base64ImageDecoder::class, diff --git a/src/Drivers/Imagick/Decoders/SplFileInfoImageDecoder.php b/src/Drivers/Imagick/Decoders/SplFileInfoImageDecoder.php new file mode 100644 index 00000000..1a1dcf84 --- /dev/null +++ b/src/Drivers/Imagick/Decoders/SplFileInfoImageDecoder.php @@ -0,0 +1,21 @@ +getRealPath()); + } +} diff --git a/src/Drivers/Imagick/InputHandler.php b/src/Drivers/Imagick/InputHandler.php index 55d87055..a7bcb6f5 100644 --- a/src/Drivers/Imagick/InputHandler.php +++ b/src/Drivers/Imagick/InputHandler.php @@ -15,6 +15,7 @@ use Intervention\Image\Drivers\Imagick\Decoders\BinaryImageDecoder; use Intervention\Image\Drivers\Imagick\Decoders\DataUriImageDecoder; use Intervention\Image\Drivers\Imagick\Decoders\Base64ImageDecoder; +use Intervention\Image\Drivers\Imagick\Decoders\SplFileInfoImageDecoder; class InputHandler extends AbstractInputHandler { @@ -28,6 +29,7 @@ class InputHandler extends AbstractInputHandler HtmlColornameDecoder::class, FilePointerImageDecoder::class, FilePathImageDecoder::class, + SplFileInfoImageDecoder::class, BinaryImageDecoder::class, DataUriImageDecoder::class, Base64ImageDecoder::class, diff --git a/tests/Drivers/Gd/InputHandlerTest.php b/tests/Drivers/Gd/InputHandlerTest.php index 177213f3..bdcc58fc 100644 --- a/tests/Drivers/Gd/InputHandlerTest.php +++ b/tests/Drivers/Gd/InputHandlerTest.php @@ -7,6 +7,7 @@ use Intervention\Image\Drivers\Gd\InputHandler; use Intervention\Image\Exceptions\DecoderException; use Intervention\Image\Tests\TestCase; +use SplFileInfo; /** * @requires extension gd @@ -29,6 +30,14 @@ public function testHandleBinaryImage(): void $this->assertInstanceOf(Image::class, $result); } + public function testHandleSplFileInfo(): void + { + $handler = new InputHandler(); + $input = new SplFileInfo(__DIR__ . '/../../images/test.jpg'); + $result = $handler->handle($input); + $this->assertInstanceOf(Image::class, $result); + } + public function testHandleFilePathImage(): void { $handler = new InputHandler(); diff --git a/tests/Drivers/Imagick/InputHandlerTest.php b/tests/Drivers/Imagick/InputHandlerTest.php index 876a59e0..d75c48c4 100644 --- a/tests/Drivers/Imagick/InputHandlerTest.php +++ b/tests/Drivers/Imagick/InputHandlerTest.php @@ -2,6 +2,7 @@ namespace Intervention\Image\Tests\Drivers\Imagick; +use SplFileInfo; use Intervention\Image\Colors\Rgb\Color as RgbColor; use Intervention\Image\Drivers\Imagick\Image; use Intervention\Image\Drivers\Imagick\InputHandler; @@ -29,6 +30,14 @@ public function testHandleBinaryImage(): void $this->assertInstanceOf(Image::class, $result); } + public function testHandleSplFileInfo(): void + { + $handler = new InputHandler(); + $input = new SplFileInfo(__DIR__ . '/../../images/test.jpg'); + $result = $handler->handle($input); + $this->assertInstanceOf(Image::class, $result); + } + public function testHandleFilePathImage(): void { $handler = new InputHandler();