From 155d9e0fa676becc41fc4f0a7c5b65479bbd4111 Mon Sep 17 00:00:00 2001 From: Marcel Werk Date: Wed, 29 May 2013 00:40:04 +0200 Subject: [PATCH] Optimized avatar upload --- .../lib/data/user/avatar/UserAvatarAction.class.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wcfsetup/install/files/lib/data/user/avatar/UserAvatarAction.class.php b/wcfsetup/install/files/lib/data/user/avatar/UserAvatarAction.class.php index 3d6404cb7c..16927efdf6 100644 --- a/wcfsetup/install/files/lib/data/user/avatar/UserAvatarAction.class.php +++ b/wcfsetup/install/files/lib/data/user/avatar/UserAvatarAction.class.php @@ -258,10 +258,18 @@ class UserAvatarAction extends AbstractDatabaseObjectAction { $imageData = getimagesize($filename); if ($imageData[0] > MAX_AVATAR_WIDTH || $imageData[1] > MAX_AVATAR_HEIGHT) { try { + $obtainDimensions = true; + if (MAX_AVATAR_WIDTH / $imageData[0] < MAX_AVATAR_HEIGHT / $imageData[1]) { + if (round($imageData[1] * (MAX_AVATAR_WIDTH / $imageData[0])) < 48) $obtainDimensions = false; + } + else { + if (round($imageData[0] * (MAX_AVATAR_HEIGHT / $imageData[1])) < 48) $obtainDimensions = false; + } + $adapter = ImageHandler::getInstance()->getAdapter(); $adapter->loadFile($filename); $filename = FileUtil::getTemporaryFilename(); - $thumbnail = $adapter->createThumbnail(MAX_AVATAR_WIDTH, MAX_AVATAR_HEIGHT, false); + $thumbnail = $adapter->createThumbnail(MAX_AVATAR_WIDTH, MAX_AVATAR_HEIGHT, $obtainDimensions); $adapter->writeImage($thumbnail, $filename); } catch (SystemException $e) { -- 2.20.1