PHP Imagick GIF动画不会被保留

时间:2013-12-03 20:54:26

标签: php gif imagick animated-gif

我上传GIF并保留动画时遇到了一些麻烦。我的代码如下所示:

$image = new Imagick($data['file']);
$object -> uploadFile('test.gif', $image -> getImageBlob());

使用getImageBlob()时,似乎没有保留gif。 Ive事件尝试过:

$image = new Imagick($data['file']);
$image = $image->coalesceImages(); 
$image = $image->deconstructImages(); 
$object -> uploadFile('test.gif', $image -> getImageBlob());

使用getImageBlob()时,我可以预先设置gif吗?

1 个答案:

答案 0 :(得分:4)

尝试使用Imagick::getImagesBlob代替Imagick::getImageBlobgetImagesBlob将返回加载图像序列,而不是单个图像;在这种情况下,GIF中的每一帧。

使用PHP 5.5.7和PECL imagick 3.1.2进行快速检查可以发现两种不同的行为:

$image = new Imagick('test.gif');
var_dump(strlen($image->getImagesBlob())); // int(4316519)
var_dump(strlen($image->getImageBlob()));  // int(61413)