我在上传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::getImageBlob
。getImagesBlob
将返回加载的图像序列,而不是仅返回单个图像;在这种情况下是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)