使用imagegif移动动画gif文件会导致其丢失动画


Moving animated gif file using imagegif causes it to lose animation

我有一个使用JavaScript上传图像的脚本,如图所示。

我从那篇帖子中解决了这个问题。现在,我从JavaScript调用中获取内容,并将其保存到temp_file中。之后,我调整了它的大小,重命名等,并将其保存到最终位置。

在我尝试使用.gif(我跳过.gfs上的所有大小调整)之前,它工作得很好。

以下是我的操作方法:

//$filename = the temp_image that is alredy stored (animated gif)
$this->image = imagecreatefromgif($filename);
header('Content-Type: image/gif');
imagegif($this->image,$savepath);
unlink($filename);

temp_file仍处于动画状态,但在将其移动到$savepath后,它将丢失动画。

发生这种情况的原因是什么?我该如何解决?

如果您只是试图将文件从输入复制到输出,为什么要解析它?!只需移动文件:

move_uploaded_file($filename, $savepath);

PHP的GD库不支持动画GIF。您需要使用ImageMagick。