我需要在PHP中将动画GIF转换为静态。我是说,例如使用它的第一帧。知道怎么做吗?
答案 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)
http://php.net/manual/en/book.image.php
查看imagejpeg()
函数