mirror of
https://github.com/Intervention/image.git
synced 2025-08-11 00:14:03 +02:00
Add SplFileInfoImageDecoder
This commit is contained in:
21
src/Drivers/Gd/Decoders/SplFileInfoImageDecoder.php
Normal file
21
src/Drivers/Gd/Decoders/SplFileInfoImageDecoder.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Intervention\Image\Drivers\Gd\Decoders;
|
||||
|
||||
use SplFileInfo;
|
||||
use Intervention\Image\Exceptions\DecoderException;
|
||||
use Intervention\Image\Interfaces\ColorInterface;
|
||||
use Intervention\Image\Interfaces\DecoderInterface;
|
||||
use Intervention\Image\Interfaces\ImageInterface;
|
||||
|
||||
class SplFileInfoImageDecoder extends FilePathImageDecoder implements DecoderInterface
|
||||
{
|
||||
public function decode($input): ImageInterface|ColorInterface
|
||||
{
|
||||
if (! is_a($input, SplFileInfo::class)) {
|
||||
throw new DecoderException('Unable to decode input');
|
||||
}
|
||||
|
||||
return parent::decode($input->getRealPath());
|
||||
}
|
||||
}
|
@@ -15,6 +15,7 @@ use Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder;
|
||||
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,
|
||||
|
21
src/Drivers/Imagick/Decoders/SplFileInfoImageDecoder.php
Normal file
21
src/Drivers/Imagick/Decoders/SplFileInfoImageDecoder.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Intervention\Image\Drivers\Imagick\Decoders;
|
||||
|
||||
use SplFileInfo;
|
||||
use Intervention\Image\Exceptions\DecoderException;
|
||||
use Intervention\Image\Interfaces\ColorInterface;
|
||||
use Intervention\Image\Interfaces\DecoderInterface;
|
||||
use Intervention\Image\Interfaces\ImageInterface;
|
||||
|
||||
class SplFileInfoImageDecoder extends FilePathImageDecoder implements DecoderInterface
|
||||
{
|
||||
public function decode($input): ImageInterface|ColorInterface
|
||||
{
|
||||
if (! is_a($input, SplFileInfo::class)) {
|
||||
throw new DecoderException('Unable to decode input');
|
||||
}
|
||||
|
||||
return parent::decode($input->getRealPath());
|
||||
}
|
||||
}
|
@@ -15,6 +15,7 @@ use Intervention\Image\Drivers\Imagick\Decoders\FilePathImageDecoder;
|
||||
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,
|
||||
|
@@ -7,6 +7,7 @@ use Intervention\Image\Drivers\Gd\Image;
|
||||
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 @@ class GdInputHandlerTest extends TestCase
|
||||
$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();
|
||||
|
@@ -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 @@ class InputHandlerTest extends TestCase
|
||||
$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();
|
||||
|
Reference in New Issue
Block a user