Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJörn Friedrich Dreyer <jfd@butonic.de>2013-02-22 15:42:40 +0400
committerJörn Friedrich Dreyer <jfd@butonic.de>2013-02-22 15:42:40 +0400
commit16a5f15f85cabfaa0c0fc66151e850119b64e64b (patch)
tree0f7d98fe8d4fe7622674f32b27348408276ff093 /lib/image.php
parent31d2b9bc07980a872721d5c79230724ce387b41c (diff)
keep transparency when resizing or cropping png/gif
Diffstat (limited to 'lib/image.php')
-rw-r--r--lib/image.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/image.php b/lib/image.php
index 7b0cbefd657..dc1c6df85ae 100644
--- a/lib/image.php
+++ b/lib/image.php
@@ -702,6 +702,13 @@ class OC_Image {
return false;
}
+ // preserve transparency
+ if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) {
+ imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127));
+ imagealphablending($process, false);
+ imagesavealpha($process, true);
+ }
+
imagecopyresampled($process, $this->resource, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
if ($process == false) {
OC_Log::write('core', __METHOD__.'(): Error resampling process image '.$width.'x'.$height, OC_Log::ERROR);
@@ -751,6 +758,14 @@ class OC_Image {
imagedestroy($process);
return false;
}
+
+ // preserve transparency
+ if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) {
+ imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127));
+ imagealphablending($process, false);
+ imagesavealpha($process, true);
+ }
+
imagecopyresampled($process, $this->resource, 0, 0, $x, $y, $targetWidth, $targetHeight, $width, $height);
if ($process == false) {
OC_Log::write('core',