[BUGFIX] Add +repage option when cropping images 69/55269/3
authorFrans Saris <franssaris@gmail.com>
Thu, 4 Jan 2018 20:16:07 +0000 (21:16 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Thu, 1 Mar 2018 22:27:03 +0000 (23:27 +0100)
To be sure the image (especialy gif format) is correctly repaged after
cropping it the +repage option needs to be added to the full command.

This patch adds the option for the LocalCropScaleMaskHelper and the
ImageBuilder cropscaling `crs` option.

Resolves: #83407
Releases: master, 8.7
Change-Id: I27b471d33acdc76c7af28ca0f114be72de91fcb9
Reviewed-on: https://review.typo3.org/55269
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/core/Classes/Resource/Processing/LocalCropScaleMaskHelper.php

index 9006f6e..67d3463 100644 (file)
@@ -2118,7 +2118,7 @@ class GraphicalFunctions
             }
             $offsetX = (int)(($data[0] - $data['origW']) * ($data['cropH'] + 100) / 200);
             $offsetY = (int)(($data[1] - $data['origH']) * ($data['cropV'] + 100) / 200);
-            $params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . '! ';
+            $params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . '! +repage';
         }
         $command = $this->scalecmd . ' ' . $info[0] . 'x' . $info[1] . '! ' . $params . ' ';
         // re-apply colorspace-setting for the resulting image so colors don't appear to dark (sRGB instead of RGB)
index 214fc92..6403b8a 100644 (file)
@@ -97,7 +97,7 @@ class LocalCropScaleMaskHelper
                 $configuration['fileExtension'],
                 '',
                 '',
-                sprintf('-crop %dx%d+%d+%d', $newWidth, $newHeight, $offsetLeft, $offsetTop),
+                sprintf('-crop %dx%d+%d+%d +repage', $newWidth, $newHeight, $offsetLeft, $offsetTop),
                 '',
                 ['noScale' => true],
                 true