From b250b54d3c3ad1ec4ba357f128efb413e4249944 Mon Sep 17 00:00:00 2001 From: andris-sevcenko <asevcenko@gmail.com> Date: Wed, 11 Jul 2018 13:54:29 +0300 Subject: [PATCH] Fixed #2408 --- CHANGELOG-v3.md | 5 +++++ src/services/Images.php | 31 ++++++++----------------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/CHANGELOG-v3.md b/CHANGELOG-v3.md index 8b87b321660..1ab5c709f65 100644 --- a/CHANGELOG-v3.md +++ b/CHANGELOG-v3.md @@ -1,5 +1,10 @@ # Release Notes for Craft CMS 3.x +## Unreleased + +### Changed +- Craft no longer relies on Imagick or GD to tell what image formats they support, when considering if it can manipulate an image. ([#2408](https://github.com/craftcms/cms/issues/2408)) + ## 3.0.15 - 2018-07-09 ### Changed diff --git a/src/services/Images.php b/src/services/Images.php index 0db14e42d8e..3178a323880 100644 --- a/src/services/Images.php +++ b/src/services/Images.php @@ -43,6 +43,13 @@ class Images extends Component // Properties // ========================================================================= + /** + * Image formats that can be manipulated. + * + * @var array + */ + public $supportedImageFormats = ['jpg', 'jpeg', 'gif', 'png']; + /** * Image driver. * @@ -120,29 +127,7 @@ public function getVersion(): string */ public function getSupportedImageFormats(): array { - if ($this->getIsImagick()) { - return array_map('strtolower', Imagick::queryFormats()); - } - - $output = []; - $map = [ - IMG_JPG => ['jpg', 'jpeg'], - IMG_GIF => ['gif'], - IMG_PNG => ['png'], - ]; - - // IMG_WEBP was added in PHP 7.0.10 - if (defined('IMG_WEBP')) { - $map[IMG_WEBP] = ['webp']; - } - - foreach ($map as $key => $extensions) { - if (imagetypes() & $key) { - $output = array_merge($output, $extensions); - } - } - - return $output; + return $this->supportedImageFormats; } /**