[BUGFIX] Fix cropping of transparent gifs with im6. 32/14132/4
authorFelix Bùˆnemann <buenemann@louis.info>
Wed, 22 Aug 2012 09:40:48 +0000 (11:40 +0200)
committerWouter Wolters <typo3@wouterwolters.nl>
Wed, 18 Sep 2013 13:11:35 +0000 (15:11 +0200)
The usage of the ! operator to force cropping empty image
canvas is inverted between ImageMagick v4 and v6 while
GraphicsMagick accepts both syntaxes, so we only need to
check for v4.

Needs different solution for newer TYPO3 due to im4
deprecation, see gerrit change 13996 for more info.

Related: #19045
Releases: 4.5
Change-Id: Iee1260a94f2686a512ce1b1df65c384319a4c4de
Reviewed-on: https://review.typo3.org/14132
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny
Reviewed-by: Felix Buenemann
Tested-by: Felix Buenemann
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
t3lib/class.t3lib_stdgraphic.php

index 5de35d4..76479fa 100644 (file)
@@ -2339,7 +2339,8 @@ class t3lib_stdGraphic {
                                        }
                                        $offsetX = intval(($data[0] - $data['origW']) * ($data['cropH'] + 100) / 200);
                                        $offsetY = intval(($data[1] - $data['origH']) * ($data['cropV'] + 100) / 200);
-                                       $params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . ' ';
+                                       // option to remove empty canvas for transparent graphics is inverted in im6 vs. im4 (gm always crops)
+                                       $params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . ($this->im_version_4 ? ' ' : '! ');
                                }
 
                                $command = $this->scalecmd . ' ' . $info[0] . 'x' . $info[1] . '! ' . $params . ' ';
@@ -3139,4 +3140,4 @@ if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLA
        include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_stdgraphic.php']);
 }
 
-?>
\ No newline at end of file
+?>