diff --git a/src/Drivers/Gd/Modifiers/ResizeModifier.php b/src/Drivers/Gd/Modifiers/ResizeModifier.php index 20d764940..d56cdc843 100644 --- a/src/Drivers/Gd/Modifiers/ResizeModifier.php +++ b/src/Drivers/Gd/Modifiers/ResizeModifier.php @@ -46,7 +46,12 @@ private function resizeFrame(FrameInterface $frame, SizeInterface $resizeTo): vo imagefill($modified, 0, 0, $transColor); imagecolortransparent($modified, $transColor); } else { - imagealphablending($modified, false); + $transColor = imagecolorallocatealpha($modified, 255, 255, 255, 127); + imagealphablending($modified, true); + imagefill($modified, 0, 0, $transColor); + imagecolortransparent($modified, $transColor); + + imagealphablending($modified, true); imagesavealpha($modified, true); } @@ -64,6 +69,7 @@ private function resizeFrame(FrameInterface $frame, SizeInterface $resizeTo): vo $frame->size()->height() ); + // set new content as recource $frame->setNative($modified); } diff --git a/src/Drivers/Imagick/Encoders/JpegEncoder.php b/src/Drivers/Imagick/Encoders/JpegEncoder.php index cf9719bb5..9934f0a3d 100644 --- a/src/Drivers/Imagick/Encoders/JpegEncoder.php +++ b/src/Drivers/Imagick/Encoders/JpegEncoder.php @@ -18,14 +18,15 @@ public function encode(ImageInterface $image): EncodedImage $compression = Imagick::COMPRESSION_JPEG; $imagick = $image->core()->native(); - $imagick->setImageBackgroundColor('white'); - $imagick->setBackgroundColor('white'); $imagick->setFormat($format); $imagick->setImageFormat($format); $imagick->setCompression($compression); $imagick->setImageCompression($compression); $imagick->setCompressionQuality($this->quality); $imagick->setImageCompressionQuality($this->quality); + $imagick->setImageBackgroundColor('white'); + $imagick->setBackgroundColor('white'); + $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); return new EncodedImage($imagick->getImagesBlob(), 'image/jpeg'); }