php imagick生成gif动画的方法

Posted newmiracle宇宙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php imagick生成gif动画的方法相关的知识,希望对你有一定的参考价值。

>php imagick生成gif动画的方法
<pre>
<?php
$image=new Imagick();
$animation = new Imagick(); //建立一个对象。
$animation->setFormat( "gif" ); //设置它的类型。
$delay = 30; //设置播放速度。


for ($i=1; $i<52; $i++) {
$thisimage = new Imagick();
$thisimage->readImage(‘testgifimg/frame-‘.$i.‘.gif‘); //我有三个图片分别叫:1.jpg,2.jpg就是要合成他们三个。
$thisimage->setFormat( "gif" ); //把他们都转成GIF格式。
$animation->addImage($thisimage); //加入到刚才建立的那个gif imagick对象之中。
$animation->setImageDelay( $delay ); //设置好播放速度。
}
header( "Content-Type: image/gif" );
$animation->writeImages("9.gif",true); //文件存储。不能使用writeImage,因为是多帧的,它会认为是多张图片
</pre>
ps:至于为什么在使用header设定文件头和echo 输出后图片没有动,我目前怀疑这是浏览器的设定关系,因为,你右键点击生成的图片另存下来时,图片是可以正常的跳动的。
图片素材下载如下
<a href="http://newmiracle.cn/wp-content/uploads/2017/04/testgifimg.zip">图片素材下载</a

以上是关于php imagick生成gif动画的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ImageMagick (php) 调整动画 gif 的大小?

Imagick 制作动画 GIF 不动画?

PHP Imagick 中的裁剪错误?

没有 Imagick 的图像调整大小并失去透明度

Imagick PHP Gif 优化中的模糊等效项是啥?

如何将短视频转换成gif动画