summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkondou <kondou@ts.unde.re>2014-08-12 11:00:00 +0200
committerkondou <kondou@ts.unde.re>2014-09-10 23:49:21 +0200
commit18ef7bf1edbb2046e473765cbc25eae3299590e9 (patch)
tree1ca4e07557c614427bf60b025ef410232d3d4871
parent45b02f8f47e1f0b03430eb400198d2223c7561cf (diff)
downloadnextcloud-server-18ef7bf1edbb2046e473765cbc25eae3299590e9.tar.gz
nextcloud-server-18ef7bf1edbb2046e473765cbc25eae3299590e9.zip
Preserve transparency when loading from a file
Fix #7148 - again :)
-rw-r--r--lib/private/image.php6
-rw-r--r--tests/lib/image.php3
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/private/image.php b/lib/private/image.php
index 7ddc8dca143..bab91745c05 100644
--- a/lib/private/image.php
+++ b/lib/private/image.php
@@ -450,6 +450,9 @@ class OC_Image {
case IMAGETYPE_GIF:
if (imagetypes() & IMG_GIF) {
$this->resource = imagecreatefromgif($imagePath);
+ // Preserve transparency
+ imagealphablending($this->resource, true);
+ imagesavealpha($this->resource, true);
} else {
OC_Log::write('core',
'OC_Image->loadFromFile, GIF images not supported: '.$imagePath,
@@ -468,6 +471,9 @@ class OC_Image {
case IMAGETYPE_PNG:
if (imagetypes() & IMG_PNG) {
$this->resource = imagecreatefrompng($imagePath);
+ // Preserve transparency
+ imagealphablending($this->resource, true);
+ imagesavealpha($this->resource, true);
} else {
OC_Log::write('core',
'OC_Image->loadFromFile, PNG images not supported: '.$imagePath,
diff --git a/tests/lib/image.php b/tests/lib/image.php
index 131a9d86f3e..795bc464159 100644
--- a/tests/lib/image.php
+++ b/tests/lib/image.php
@@ -115,6 +115,9 @@ class Test_Image extends PHPUnit_Framework_TestCase {
public function testData() {
$img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png');
$raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png'));
+ // Preserve transparency
+ imagealphablending($raw, true);
+ imagesavealpha($raw, true);
ob_start();
imagepng($raw);
$expected = ob_get_clean();