From fc58a93929e5f410a5985190e836dc9277771425 Mon Sep 17 00:00:00 2001 From: Mzhelskiy Maxim Date: Fri, 17 Mar 2017 13:41:28 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B8=20gif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classes/modules/media/Media.class.php | 40 ++++++++++++------- framework | 2 +- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/application/classes/modules/media/Media.class.php b/application/classes/modules/media/Media.class.php index 13edadd2..0a815ea9 100644 --- a/application/classes/modules/media/Media.class.php +++ b/application/classes/modules/media/Media.class.php @@ -454,28 +454,38 @@ class ModuleMedia extends ModuleORM */ $sFileResult = null; $mOriginalSize = $this->GetConfigParam('image.original', $sTargetType); - if ($mOriginalSize === true) { - if (!$sFileResult = $oImage->saveSmart($sPath, $sFileName, array('skip_watermark' => true))) { - $this->Fs_RemoveFileLocal($sFileTmp); - return $this->Image_GetLastError(); - } - } elseif (is_string($mOriginalSize)) { + if ($mOriginalSize !== false && $oImage->getFormat() == 'gif') { /** - * Ресайзим оригинал + * Если gif, то сохраняем без изменений */ - $aOriginalSize = $this->ParsedImageSize($mOriginalSize); - if ($aOriginalSize['crop']) { - $oImage->cropProportion($aOriginalSize['w'] / $aOriginalSize['h'], 'center'); - } - if (!$sFileResult = $oImage->resize($aOriginalSize['w'], $aOriginalSize['h'], true)->saveSmart($sPath, $sFileName, array('skip_watermark' => true)) - ) { + if (!$sFileResult = $oImage->saveOriginalSmart($sPath, $sFileName)) { $this->Fs_RemoveFileLocal($sFileTmp); return $this->Image_GetLastError(); } - $iFileSize = $this->Fs_GetFileSize($sFileResult); + } else { + if ($mOriginalSize === true) { + if (!$sFileResult = $oImage->saveSmart($sPath, $sFileName, array('skip_watermark' => true))) { + $this->Fs_RemoveFileLocal($sFileTmp); + return $this->Image_GetLastError(); + } + } elseif (is_string($mOriginalSize)) { + /** + * Ресайзим оригинал + */ + $aOriginalSize = $this->ParsedImageSize($mOriginalSize); + if ($aOriginalSize['crop']) { + $oImage->cropProportion($aOriginalSize['w'] / $aOriginalSize['h'], 'center'); + } + if (!$sFileResult = $oImage->resize($aOriginalSize['w'], $aOriginalSize['h'], true)->saveSmart($sPath, $sFileName, + array('skip_watermark' => true)) + ) { + $this->Fs_RemoveFileLocal($sFileTmp); + return $this->Image_GetLastError(); + } + $iFileSize = $this->Fs_GetFileSize($sFileResult); + } } - $aSizes = $this->GetConfigParam('image.sizes', $sTargetType); /** * Перед запуском генерации подчищаем память diff --git a/framework b/framework index 831c5e89..8f08d146 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit 831c5e8949fbb7762324ead8c69db289c8bfeb6b +Subproject commit 8f08d14613dc258ffc8bb34e355794a412f87ba4