diff --git a/src/Drivers/Abstract/AbstractImage.php b/src/Drivers/Abstract/AbstractImage.php index 71b05e9b..2837a3cd 100644 --- a/src/Drivers/Abstract/AbstractImage.php +++ b/src/Drivers/Abstract/AbstractImage.php @@ -199,7 +199,7 @@ abstract class AbstractImage ); } - public function pad(int $width, int $height, string $position = 'center', $backgroundColor = 'fff'): ImageInterface + public function pad(int $width, int $height, string $position = 'center', $backgroundColor = 'transparent'): ImageInterface { // original $imagesize = $this->getSize(); @@ -212,7 +212,7 @@ abstract class AbstractImage ); } - public function padDown(int $width, int $height, string $position = 'center', $backgroundColor = 'fff'): ImageInterface + public function padDown(int $width, int $height, string $position = 'center', $backgroundColor = 'transparent'): ImageInterface { // original $imagesize = $this->getSize(); diff --git a/src/Drivers/Gd/Decoders/TransparentColorDecoder.php b/src/Drivers/Gd/Decoders/TransparentColorDecoder.php new file mode 100644 index 00000000..dd77d055 --- /dev/null +++ b/src/Drivers/Gd/Decoders/TransparentColorDecoder.php @@ -0,0 +1,21 @@ +fail(); + } + + return parent::decode([0, 0, 0, 0]); + } +} diff --git a/src/Drivers/Gd/InputHandler.php b/src/Drivers/Gd/InputHandler.php index 7950e73f..02fabd68 100644 --- a/src/Drivers/Gd/InputHandler.php +++ b/src/Drivers/Gd/InputHandler.php @@ -11,10 +11,12 @@ class InputHandler extends AbstractInputHandler { return new Decoders\ArrayColorDecoder( new Decoders\HexColorDecoder( - new Decoders\FilePathImageDecoder( - new Decoders\BinaryImageDecoder( - new Decoders\DataUriImageDecoder( - new Decoders\Base64ImageDecoder() + new Decoders\TransparentColorDecoder( + new Decoders\FilePathImageDecoder( + new Decoders\BinaryImageDecoder( + new Decoders\DataUriImageDecoder( + new Decoders\Base64ImageDecoder() + ) ) ) ) diff --git a/src/Drivers/Imagick/Decoders/TransparentColorDecoder.php b/src/Drivers/Imagick/Decoders/TransparentColorDecoder.php new file mode 100644 index 00000000..5d3e3153 --- /dev/null +++ b/src/Drivers/Imagick/Decoders/TransparentColorDecoder.php @@ -0,0 +1,21 @@ +fail(); + } + + return parent::decode([0, 0, 0, 0]); + } +} diff --git a/src/Drivers/Imagick/InputHandler.php b/src/Drivers/Imagick/InputHandler.php index 2062fa71..fa5cd226 100644 --- a/src/Drivers/Imagick/InputHandler.php +++ b/src/Drivers/Imagick/InputHandler.php @@ -11,10 +11,12 @@ class InputHandler extends AbstractInputHandler { return new Decoders\ArrayColorDecoder( new Decoders\HexColorDecoder( - new Decoders\FilePathImageDecoder( - new Decoders\BinaryImageDecoder( - new Decoders\DataUriImageDecoder( - new Decoders\Base64ImageDecoder() + new Decoders\TransparentColorDecoder( + new Decoders\FilePathImageDecoder( + new Decoders\BinaryImageDecoder( + new Decoders\DataUriImageDecoder( + new Decoders\Base64ImageDecoder() + ) ) ) ) diff --git a/tests/Drivers/Gd/Decoders/TransparentColorDecoderTest.php b/tests/Drivers/Gd/Decoders/TransparentColorDecoderTest.php new file mode 100644 index 00000000..d0864d48 --- /dev/null +++ b/tests/Drivers/Gd/Decoders/TransparentColorDecoderTest.php @@ -0,0 +1,21 @@ +decode('transparent'); + $this->assertInstanceOf(Color::class, $color); + $this->assertEquals(0, $color->red()); + $this->assertEquals(0, $color->green()); + $this->assertEquals(0, $color->blue()); + $this->assertEquals(0, $color->alpha()); + } +} diff --git a/tests/Drivers/Imagick/Decoders/TransparentColorDecoderTest.php b/tests/Drivers/Imagick/Decoders/TransparentColorDecoderTest.php new file mode 100644 index 00000000..915842bd --- /dev/null +++ b/tests/Drivers/Imagick/Decoders/TransparentColorDecoderTest.php @@ -0,0 +1,21 @@ +decode('transparent'); + $this->assertInstanceOf(Color::class, $color); + $this->assertEquals(0, $color->red()); + $this->assertEquals(0, $color->green()); + $this->assertEquals(0, $color->blue()); + $this->assertEquals(0, $color->alpha()); + } +}