[BUGFIX] Re-apply colorspace to resulting image 54/55554/2
authorStefan Neufeind <typo3.neufeind@speedpartner.de>
Mon, 28 Nov 2016 10:33:30 +0000 (11:33 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sun, 4 Feb 2018 19:22:51 +0000 (20:22 +0100)
When using filters the colorspace is not always applied.
A quickfix is to add the colorspace-setting again before
writing the output-image.
Multiple colorspace-settings on the commandline will be
executed in order. For example the grayscale-filter uses
"-colorspace GRAY". The final output-image can then be
converted to "-colorspace sRGB" again so the brightness
appears correct (not too dark) again.

Resolves: #78816
Releases: master, 8.7
Change-Id: I3fcabf8fdbb8d43f15662532b881501ebb43b1dd
Reviewed-on: https://review.typo3.org/55554
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php

index fc6281d..02166f5 100644 (file)
@@ -2180,6 +2180,8 @@ class GraphicalFunctions
             $params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . '! ';
         }
         $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)
+        $command .= ' -colorspace ' . $this->colorspace;
         $cropscale = $data['crs'] ? 'crs-V' . $data['cropV'] . 'H' . $data['cropH'] : '';
         if ($this->alternativeOutputKey) {
             $theOutputName = GeneralUtility::shortMD5($command . $cropscale . basename($imagefile) . $this->alternativeOutputKey . '[' . $frame . ']');