Php 冻结GIF图像

Php 冻结GIF图像,php,javascript,html,gif,Php,Javascript,Html,Gif,我在一页上有许多动画.gif。我需要一个脚本或代码,可以冻结这些。gif动画,使他们不动画和冻结在第一帧 当前背景是如下所示的表格单元格背景: <td background="animated_background_1.gif"> 及 用于显示图像(或作为背景图像或其他内容)的HTML: 测试脚本名为:“giftopng.php” 你可以使用这样的东西(来源) 如果负载过高,则可以缓存静态图像。用于显示图像(或作为背景图像或其他内容)的HTML: 测试脚本名为:“g

我在一页上有许多动画.gif。我需要一个脚本或代码,可以冻结这些。gif动画,使他们不动画和冻结在第一帧

当前背景是如下所示的表格单元格背景:

<td background="animated_background_1.gif">


用于显示图像(或作为背景图像或其他内容)的HTML:


测试脚本名为:“giftopng.php”


你可以使用这样的东西(来源)


如果负载过高,则可以缓存静态图像。

用于显示图像(或作为背景图像或其他内容)的HTML:


测试脚本名为:“giftopng.php”


你可以使用这样的东西(来源)

如果负载过高,则可以缓存静态映像。

查看代码,它可以帮助您解决此问题

jsgif是一款动画GIF播放器书签,支持暂停、逐帧播放、反向播放以及视频播放器可能提供的其他功能

看看代码,它可以帮助您解决这个问题

jsgif是一款动画GIF播放器书签,支持暂停、逐帧播放、反向播放以及视频播放器可能提供的其他功能


我不认为这可以在CSS/JS中实现。您所能做的最好的事情就是在PHP中提取第一帧(并缓存它),然后像当前使用gif一样使用它。这样,您将解决您的问题,并使带宽消耗更小,因为单帧gif应该比整个动画gif文件小得多。我所能想到的是,当你上传动画文件时,你会创建一个静态的
gif
,并使用
javascript
在所需的事件中替换两个图像。我记得在浏览器中支持动画gif是一项新功能的那一天,你可以停止当页面已加载时,通过点击停止按钮来播放动画。不过,我怀疑浏览器是否仍能做到这一点,而且据我所知,在JS/CSS/HTML中,除了首先不使用动画GIF之外,肯定没有其他方法可以阻止GIF动画化。通常,除非实际需要动画,否则应避免使用动画GIF。否则,您就是在浪费带宽。@GordonM,在FF3.5中,“停止”按钮对于加载的页面是禁用的,但您可以按Esc键停止gif动画。不过,这是最终用户(而不是程序员)可以做的事情,在第一帧停止所有动画的机会很小;)更新之前的评论:FF 3.6具有该功能。我不知道3.5,因为我没有安装它。我不认为这可以在CSS/JS中完成。您所能做的最好的事情就是在PHP中提取第一帧(并缓存它),然后像当前使用gif一样使用它。这样,您将解决您的问题,并使带宽消耗更小,因为单帧gif应该比整个动画gif文件小得多。我所能想到的是,当你上传动画文件时,你会创建一个静态的
gif
,并使用
javascript
在所需的事件中替换两个图像。我记得在浏览器中支持动画gif是一项新功能的那一天,你可以停止当页面已加载时,通过点击停止按钮来播放动画。不过,我怀疑浏览器是否仍能做到这一点,而且据我所知,在JS/CSS/HTML中,除了首先不使用动画GIF之外,肯定没有其他方法可以阻止GIF动画化。通常,除非实际需要动画,否则应避免使用动画GIF。否则,您就是在浪费带宽。@GordonM,在FF3.5中,“停止”按钮对于加载的页面是禁用的,但您可以按Esc键停止gif动画。不过,这是最终用户(而不是程序员)可以做的事情,在第一帧停止所有动画的机会很小;)更新之前的评论:FF 3.6具有该功能。我不知道3.5,因为我没有安装它。
<td style="background-image:url('animated_background_2.gif');"> 
<img src="giftopng.php?image=mypic.gif" alt="" />
<?php

//Get image name from URL
$image=$_GET['image'];

//Load the image
$img = ImageCreateFromGif($image);

//Convert to PNG and send it to browser
if($img) {
header("Content-Type: image/png");
ImagePNG($img);

//Clean-up memory
ImageDestroy($img);
}
?>