网页生成直接显示是动态的,可是保存后就成不动的了,只显示最后一张了,例如:$filelist = array('a.png', 'b.png', 'c.png', 'd.png');//组合gif动态图片的图片列表
$gif = new Imagick();
$gif->setFormat("gif");//设置生成图片的格式为gif格式/* 添加字符串设置 ->
$str = '这是为什么呢?';//要加的字符串
$draw = new ImagickDraw;
$draw->setfont('default.ttf');//字体
$draw->setfontsize(12);//字体大小
$draw->setfillalpha(0.4);//字体透明度
$draw->arc(50, 100, 150, 150, 100, 1000);//初始化一个图形
<- */foreach($filelist as $file){
$file = new Imagick($file); /*
$width = $file->getimagewidth();//获取单张图片的宽
$height = $file->getimageheight();//获取单张图片的高
$file->adaptiveresizeimage($width * 3, $height * 3);//重设每张图片大小
*/// $file->adaptiveThresholdImage(40, 10, 1);//颜色强度
// $file->adaptiveblurimage(20, 1);//模糊、锐化
// $file->resizeimage($img->getimagewidth(), $img->getimageheight(), 20, 20);//缩略、模糊
// $file->annotateImage($draw, 50, 50, 50, $str);//向图片中写字符串
// $file->drawimage($draw);//添加图形
$gif->addImage($file);//向gif图片中添加图像(图片)
$gif->setImageDelay(100);//设置间隔
}
header("Content-Type: image/gif");
//echo $gif->getImagesBlob();//直接输出就是动的
echo $gif->writeImages("test.gif", true);//如果保存就不动了
$gif->clear();
$gif->destroy();最终保存后只显示d.png的这针了,网上查了下,也没找到多少相关资料,各位大牛帮帮吗啊
$gif = new Imagick();
$gif->setFormat("gif");//设置生成图片的格式为gif格式/* 添加字符串设置 ->
$str = '这是为什么呢?';//要加的字符串
$draw = new ImagickDraw;
$draw->setfont('default.ttf');//字体
$draw->setfontsize(12);//字体大小
$draw->setfillalpha(0.4);//字体透明度
$draw->arc(50, 100, 150, 150, 100, 1000);//初始化一个图形
<- */foreach($filelist as $file){
$file = new Imagick($file); /*
$width = $file->getimagewidth();//获取单张图片的宽
$height = $file->getimageheight();//获取单张图片的高
$file->adaptiveresizeimage($width * 3, $height * 3);//重设每张图片大小
*/// $file->adaptiveThresholdImage(40, 10, 1);//颜色强度
// $file->adaptiveblurimage(20, 1);//模糊、锐化
// $file->resizeimage($img->getimagewidth(), $img->getimageheight(), 20, 20);//缩略、模糊
// $file->annotateImage($draw, 50, 50, 50, $str);//向图片中写字符串
// $file->drawimage($draw);//添加图形
$gif->addImage($file);//向gif图片中添加图像(图片)
$gif->setImageDelay(100);//设置间隔
}
header("Content-Type: image/gif");
//echo $gif->getImagesBlob();//直接输出就是动的
echo $gif->writeImages("test.gif", true);//如果保存就不动了
$gif->clear();
$gif->destroy();最终保存后只显示d.png的这针了,网上查了下,也没找到多少相关资料,各位大牛帮帮吗啊
你怎么确定保存后的test.gif不能动?用什么软件看的?我知道的图像浏览软件都不能显示动画,只有在浏览器中打开才能显示动画。
用浏览器打开这个gif文件看看。
你用 Imagick 不也是这样吗?
对,确实是动画。我的系统是php 5.3.6 on Debian.
网上搜索找不到其他人有类似的问题。能否贴一个你生成的gif文件。
$gif->coalesceImages();
$gif->writeImages("test.gif", true);
显示的是四张图片中的最后一张(d.png)
可将每一帧抽取出来