你好,这里的人是我的代码......
$_FILES=array();
$GIF = new Imagick();
$GIF->setFormat("gif");
$_FILES['image0']="C:\wamp\www\latest\im\image0.gif";
$_FILES['image1']="C:\wamp\www\latest\im\image1.gif";
$_FILES['image2']="C:\wamp\www\latest\im\image2.gif";
$_FILES['image3']="C:\wamp\www\latest\im\image3.gif";
for ($i = 0; $i < sizeof($_FILES); ++$i) {
$frame = new Imagick();
$frame->readImage($_FILES["image$i"]);
$frame->setImageDelay(100);
$GIF->addImage($frame);
}
$GIF->writeImages("C:\wamp\www\latest\im\allimage.gif" , true);
上面的代码通过创建动画gif工作正常,但问题是它与以前的图像重叠,,,当下一个图像出现时,Iam尝试disappear the previous image
...类似于Timer
, ......有办法解决这个问题吗?
答案 0 :(得分:2)
您应该使用setImageDispose方法清除框架区域:
$frame->readImage($_FILES["image$i"]);
$frame->setImageDispose(2);
$frame->setImageDelay(100);
您可以添加一个电话给&#39; optimizeImageLayers&#39;减少文件的大小:
$GIF->optimizeImageLayers();
$GIF->writeImages("C:\wamp\www\latest\im\allimage.gif" , true);