From c8c5c13acdda56d69566ac85f20bb53a201333e9 Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Tue, 9 Jan 2024 13:30:28 +0100 Subject: [PATCH] Fix edge case in CropModifier --- src/Drivers/Imagick/Modifiers/CropModifier.php | 6 ++++++ tests/Drivers/Imagick/ImageTest.php | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Drivers/Imagick/Modifiers/CropModifier.php b/src/Drivers/Imagick/Modifiers/CropModifier.php index f33705b7..3b797e97 100644 --- a/src/Drivers/Imagick/Modifiers/CropModifier.php +++ b/src/Drivers/Imagick/Modifiers/CropModifier.php @@ -3,6 +3,7 @@ namespace Intervention\Image\Drivers\Imagick\Modifiers; use ImagickDraw; +use ImagickPixel; use Intervention\Image\Drivers\DriverSpecializedModifier; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Image\Interfaces\SizeInterface; @@ -23,10 +24,15 @@ class CropModifier extends DriverSpecializedModifier $this->driver()->handleInput($this->background) ); + $transparent = new ImagickPixel('transparent'); + $draw = new ImagickDraw(); $draw->setFillColor($background); foreach ($image as $frame) { + $frame->native()->setBackgroundColor($transparent); + $frame->native()->setImageBackgroundColor($transparent); + // crop image $frame->native()->extentImage( $crop->width(), diff --git a/tests/Drivers/Imagick/ImageTest.php b/tests/Drivers/Imagick/ImageTest.php index 001bd9c5..5ecf956e 100644 --- a/tests/Drivers/Imagick/ImageTest.php +++ b/tests/Drivers/Imagick/ImageTest.php @@ -53,10 +53,10 @@ class ImageTest extends TestCase $this->assertEquals(4, $result->width()); $this->assertEquals('ff0000', $image->pickColor(0, 0)->toHex()); - $this->assertEquals('00000000', $image->pickColor(1, 0)->toHex()); + $this->assertTransparency($image->pickColor(1, 0)); $this->assertEquals('ff0000', $clone->pickColor(0, 0)->toHex()); - $this->assertEquals('00000000', $clone->pickColor(1, 0)->toHex()); + $this->assertTransparency($clone->pickColor(1, 0)); } public function testDriver(): void