【问题标题】:Freezing GIF images冻结 GIF 图像
【发布时间】:2011-08-21 12:04:47
【问题描述】:

我在一个页面上有许多动画 .gif。我需要一个可以冻结这些 .gif 动画的脚本或代码,这样它们就不会在第一帧上设置动画和冻结。

目前的背景是这样的表格单元格背景:

<td background="animated_background_1.gif">

<td style="background-image:url('animated_background_2.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,因为我没有安装它。

标签: php javascript html gif


【解决方案1】:

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

<img src="giftopng.php?image=mypic.gif" alt="" />

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

<?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);
}
?>

你可以使用这样的东西(来源http://php.net/manual/en/function.imagecreatefromgif.php)。

如果负载太高,那么你可以缓存静态图像。

【讨论】:

    【解决方案2】:

    查看http://slbkbs.org/jsgif 代码,它可以帮助您解决这个问题。

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

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 2015-03-10
      • 2018-04-19
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2018-05-24
      • 2018-11-23
      相关资源
      最近更新 更多