From 38fa2df2e3092fb714a8e1d075ca6dfde5dbcbdb Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Sat, 6 Jan 2024 14:24:33 +0100 Subject: [PATCH] Remove normalizing in GD's BinaryImageDecoder --- src/Drivers/Gd/Decoders/BinaryImageDecoder.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Drivers/Gd/Decoders/BinaryImageDecoder.php b/src/Drivers/Gd/Decoders/BinaryImageDecoder.php index 837e837e..f590d5b0 100644 --- a/src/Drivers/Gd/Decoders/BinaryImageDecoder.php +++ b/src/Drivers/Gd/Decoders/BinaryImageDecoder.php @@ -9,7 +9,6 @@ use Intervention\Image\Interfaces\DecoderInterface; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Gif\Decoder as GifDecoder; use Intervention\Gif\Splitter as GifSplitter; -use Intervention\Image\Drivers\Gd\Cloner; use Intervention\Image\Drivers\Gd\Core; use Intervention\Image\Drivers\Gd\Driver; use Intervention\Image\Exceptions\DecoderException; @@ -39,15 +38,16 @@ class BinaryImageDecoder extends AbstractDecoder implements DecoderInterface throw new DecoderException('Unable to decode input'); } - // clone image to normalize transparency to #ffffff00 - $normalized = Cloner::clone($gd); - imagedestroy($gd); + if (!imageistruecolor($gd)) { + imagepalettetotruecolor($gd); + } + imagesavealpha($gd, true); // build image instance $image = new Image( new Driver(), new Core([ - new Frame($normalized) + new Frame($gd) ]), $this->extractExifData($input) );