If Imagick is available, GIF will be saved using it to keep animation.
Otherwise the previous method will be used and the animation won't be kept.
"phpstan/phpstan-symfony": "^0.11.0",
"phpstan/phpstan-doctrine": "^0.11.0"
},
+ "suggest": {
+ "ext-imagick": "To keep GIF animation when downloading image is enabled"
+ },
"scripts": {
"post-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
switch ($ext) {
case 'gif':
- imagegif($im, $localPath);
+ // use Imagick if available to keep GIF animation
+ if (class_exists('\\Imagick')) {
+ $imagick = new \Imagick();
+ $imagick->readImageBlob($res->getBody());
+ $imagick->setImageFormat('gif');
+ $imagick->writeImages($localPath, true);
+ } else {
+ imagegif($im, $localPath);
+ }
+
$this->logger->debug('DownloadImages: Re-creating gif');
break;
case 'jpeg':