[BUGFIX] Detect current ImageMagick Version 7 for Windows. 05/57805/6
authorMichael Kersten <michael.kersten@3m5.de>
Sat, 4 Aug 2018 12:10:55 +0000 (14:10 +0200)
committerJigal van Hemert <jigal.van.hemert@typo3.org>
Sun, 5 Aug 2018 08:59:36 +0000 (10:59 +0200)
Try to use magick.exe if executable does not exists.

ImageMagick Version 7 for Windows does not use the executables for
identify, convert and combine/composite anymore. Instead the executable
magick.exe is used.

Resolves: #80909
Releases: master, 8.7
Change-Id: I823d399b723077e726b1105192474607b43fa907
Reviewed-on: https://review.typo3.org/57805
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Guido Schmechel <guido.schmechel@brandung.de>
Tested-by: Guido Schmechel <guido.schmechel@brandung.de>
Reviewed-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
Tested-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
typo3/sysext/core/Classes/Utility/CommandUtility.php
typo3/sysext/install/Classes/Configuration/Image/ImageMagick6Preset.php

index 6d4bf74..40e2ff4 100644 (file)
@@ -109,7 +109,11 @@ class CommandUtility
         if ($gfxConf['processor'] === 'GraphicsMagick') {
             $path = self::escapeShellArgument($path . 'gm' . $isExt) . ' ' . self::escapeShellArgument($command);
         } else {
-            $path = self::escapeShellArgument($path . $command . $isExt);
+            if (Environment::isWindows() && !@is_file($path . $command . $isExt)) {
+                $path = self::escapeShellArgument($path . 'magick' . $isExt) . ' ' . self::escapeShellArgument($command);
+            } else {
+                $path = self::escapeShellArgument($path . $command . $isExt);
+            }
         }
         // strip profile information for thumbnails and reduce their size
         if ($parameters && $command !== 'identify') {
index b528ecd..a91e441 100644 (file)
@@ -68,6 +68,10 @@ class ImageMagick6Preset extends AbstractImagePreset
         foreach ($searchPaths as $path) {
             if (Environment::isWindows()) {
                 $executable = 'identify.exe';
+
+                if (!@is_file($path . $executable)) {
+                    $executable = 'magick.exe';
+                }
             } else {
                 $executable = 'identify';
             }