PHP Imagick GIF动画未保留


PHP Imagick GIF Animation Is Not Preserved

我在上传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?

尝试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)