我上传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吗?
答案 0 :(得分:4)
尝试使用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)