2010-07-31 45 views
2

我需要在PHP中将动画GIF转换为静态。我的意思是使用其第一帧。任何想法如何做到这一点?如何将动画GIF转换为PHP中的静态?

+0

可以使用的ImageMagick ,还是只有gd? – JAL 2010-07-31 23:49:56

+0

到目前为止,你有什么尝试? – Charles 2010-07-31 23:51:35

回答

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); 
2

我能想到的(不是很可爱的),最好的办法是将GIF转换成PNG/JPEG,然后将其再次GIF,:P

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

希望这可以帮助你

+0

显然,如果这是您选择做的事,转换为PNG是更好的选择。但是,由于PHP/GD似乎不支持动画GIF,因此将它“转换”为GIF(例如'imagegif(imagecreatefromgif($ file));')可能会起作用。 – You 2010-08-01 00:00:52

相关问题