【发布时间】:2011-03-23 18:04:59
【问题描述】:
我需要在 PHP 中将动画 GIF 转换为静态。我的意思是例如使用它的第一帧。知道该怎么做吗?
【问题讨论】:
-
你能用imagemagick,还是只用gd?
-
到目前为止你尝试过什么?
我需要在 PHP 中将动画 GIF 转换为静态。我的意思是例如使用它的第一帧。知道该怎么做吗?
【问题讨论】:
我能想到的最好方法(不是很可爱)是将 gif 转换为 png/jpeg,然后再将其转换为 gif,:P
试试这个转换;) http://gallery.menalto.com/node/13206
希望对你有帮助
【讨论】:
imagegif(imagecreatefromgif($file));)可能会起作用。
看看http://php.net/manual/en/function.imagecreatefromgif.php
检查来自 max lloyd 的代码 sn-p。
【讨论】:
【讨论】:
“剥离”动画的 GIF 可以通过将其转换为另一种格式然后再返回来完成。 PNG 是这种“其他格式”的一个很好的候选,因为它是无损的,不像 JPEG。使用 PHP 的 GD 函数,并输出 PNG 而不是 GIF:
header('Content-type: image/png');
imagepng(imagecreatefromgif($file));
如果 PHP/GD 不支持动画 GIF(我认为不支持),这可能有效(尚未测试);并且会输出GIF格式的图片,不像上面的sn-p:
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);
【讨论】: