From b88450a3259a8b1e6b008e377fd73cfb82c1b60f Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Wed, 6 Nov 2013 19:29:55 +0100 Subject: [PATCH] fixed issue with inserting transparent images --- src/Intervention/Image/Image.php | 4 ++++ tests/ImageTest.php | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/Intervention/Image/Image.php b/src/Intervention/Image/Image.php index 47136ab7..c40ffe9a 100644 --- a/src/Intervention/Image/Image.php +++ b/src/Intervention/Image/Image.php @@ -808,8 +808,12 @@ class Image break; } + imagealphablending($this->resource, true); // enable alphablending just for imagecopy + imagecopy($this->resource, $obj->resource, $pos_x, $pos_y, 0, 0, $obj->width, $obj->height); + imagealphablending($this->resource, false); + return $this; } diff --git a/tests/ImageTest.php b/tests/ImageTest.php index 38733c5c..31902b4c 100644 --- a/tests/ImageTest.php +++ b/tests/ImageTest.php @@ -888,6 +888,18 @@ class ImageTest extends PHPUnit_Framework_Testcase $img->reset(); } + public function testInsertAfterResize() + { + $watermark = 'public/circle.png'; + $img = Image::make('public/test.jpg'); + $img->resize(50, 50)->insert($watermark, 0, 0, 'center'); + $this->assertEquals($img->width, 50); + $this->assertEquals($img->height, 50); + $this->assertEquals('#ffffff', $img->pickColor(0, 0, 'hex')); + $this->assertEquals('#322715', $img->pickColor(24, 24, 'hex')); + $this->assertEquals('#ffa600', $img->pickColor(49, 49, 'hex')); + } + public function testInsertImageFromResource() { $resource = imagecreatefrompng('public/tile.png');