Theming: adjust background image resizing

Support high resolution login images by resizing only images that are wider than 4096px

fixes #7459

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2018-01-02 11:58:05 +01:00
parent fdd7a53250
commit 422e20569b
No known key found for this signature in database
GPG key ID: 4C614C6ED2CDE6DF

View file

@ -288,12 +288,10 @@ class ThemingController extends Controller {
// Optimize the image since some people may upload images that will be
// either to big or are not progressive rendering.
$tmpFile = $this->tempManager->getTemporaryFile();
if (function_exists('imagescale')) {
// FIXME: Once PHP 5.5.0 is a requirement the above check can be removed
// Workaround for https://bugs.php.net/bug.php?id=65171
$newHeight = imagesy($image) / (imagesx($image) / 1920);
$image = imagescale($image, 1920, $newHeight);
}
$newWidth = imagesx($image) < 4096 ? imagesx($image) : 4096;
$newHeight = imagesy($image) / (imagesx($image) / $newWidth);
$image = imagescale($image, $newWidth, $newHeight);
imageinterlace($image, 1);
imagejpeg($image, $tmpFile, 75);
imagedestroy($image);