如何在PHP中将动画GIF转换为静态?

时间:2010-07-31 23:44:20

标签: php gif animated

我需要在PHP中将动画GIF转换为静态。我是说,例如使用它的第一帧。知道怎么做吗?

4 个答案:

答案 0 :(得分:4)

“剥离”动画的GIF可以通过将其转换为其他格式然后再返回来完成。 PNG是这种“其他格式”的理想选择,因为它不像JPEG那样是无损的。使用PHP GD功能,输出PNG而不是GIF:

header('Content-type: image/png');
imagepng(imagecreatefromgif($file));

如果PHP / GD不支持动画GIF(我认为不支持),这可能有用(尚未测试);它将以GIF格式输出图像,与上述代码段不同:

header('Content-type: image/gif');
imagegif(imagecreatefromgif($file));

如果这不起作用,并且以GIF格式输出是必要的,这将是:

$img1 = imagecreatefromgif($file);
$size = getimagesize($img1);
$img2 = imagecreatetruecolor($size[0], $size[1]);
imagecopy($img2, $img1, 0, 0, 0, 0, $size[0], $size[1]);
header('Content-type: image/gif');
imagegif($img2);

答案 1 :(得分:3)

查看http://php.net/manual/en/function.imagecreatefromgif.php

检查max lloyd的代码片段。

答案 2 :(得分:2)

我能想到的最好的方式(不是很可爱)是将gif转换为png / jpeg,然后再将其转换为gif,:P

试试这个转换;) http://gallery.menalto.com/node/13206

希望这可以帮助你

答案 3 :(得分:1)

是的,你可以试试这个

的gd库

http://php.net/manual/en/book.image.php

查看imagejpeg()函数