Merge pull request #23699 from nextcloud/backport/23680/stable20

[stable20] Enable theming background transparency
This commit is contained in:
Morris Jobke 2020-10-27 09:06:05 +01:00 committed by GitHub
commit c4d016887b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -228,13 +228,17 @@ class ImageManager {
// either to big or are not progressive rendering. // either to big or are not progressive rendering.
$newImage = @imagecreatefromstring(file_get_contents($tmpFile)); $newImage = @imagecreatefromstring(file_get_contents($tmpFile));
// Preserve transparency
imagesavealpha($newImage, true);
imagealphablending($newImage, true);
$tmpFile = $this->tempManager->getTemporaryFile(); $tmpFile = $this->tempManager->getTemporaryFile();
$newWidth = (int)(imagesx($newImage) < 4096 ? imagesx($newImage) : 4096); $newWidth = (int)(imagesx($newImage) < 4096 ? imagesx($newImage) : 4096);
$newHeight = (int)(imagesy($newImage) / (imagesx($newImage) / $newWidth)); $newHeight = (int)(imagesy($newImage) / (imagesx($newImage) / $newWidth));
$outputImage = imagescale($newImage, $newWidth, $newHeight); $outputImage = imagescale($newImage, $newWidth, $newHeight);
imageinterlace($outputImage, 1); imageinterlace($outputImage, 1);
imagejpeg($outputImage, $tmpFile, 75); imagepng($outputImage, $tmpFile, 8);
imagedestroy($outputImage); imagedestroy($outputImage);
$target->putContent(file_get_contents($tmpFile)); $target->putContent(file_get_contents($tmpFile));