From cb8d3772589ff86452728b7580f896452bd45c9b Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Wed, 6 Nov 2013 21:06:40 +0100 Subject: [PATCH] preserving transparency on palette images --- src/Intervention/Image/Image.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Intervention/Image/Image.php b/src/Intervention/Image/Image.php index c40ffe9a..1f625ee5 100644 --- a/src/Intervention/Image/Image.php +++ b/src/Intervention/Image/Image.php @@ -275,9 +275,18 @@ class Image // create new image $image = imagecreatetruecolor($dst_w, $dst_h); - // preserve transparency - imagealphablending($image, false); - imagesavealpha($image, true); + // preserve transparency + $transIndex = imagecolortransparent($this->resource); + + if ($transIndex != -1) { + $rgba = imagecolorsforindex($image, $transIndex); + $transColor = imagecolorallocate($image, $rgba['red'], $rgba['green'], $rgba['blue']); + imagefill($image, 0, 0, $transColor); + imagecolortransparent($image, $transColor); + } else { + imagealphablending($image, false); + imagesavealpha($image, true); + } // copy content from resource imagecopyresampled(