【问题标题】:How to convert animated GIF to static in PHP?如何在 PHP 中将动画 GIF 转换为静态?
【发布时间】:2011-03-23 18:04:59
【问题描述】:

我需要在 PHP 中将动画 GIF 转换为静态。我的意思是例如使用它的第一帧。知道该怎么做吗?

【问题讨论】:

  • 你能用imagemagick,还是只用gd?
  • 到目前为止你尝试过什么?

标签: php gif animated


【解决方案1】:

我能想到的最好方法(不是很可爱)是将 gif 转换为 png/jpeg,然后再将其转换为 gif,:P

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

希望对你有帮助

【讨论】:

  • 显然,如果您选择这样做,转换为 PNG 是更好的选择。然而,由于 PHP/GD 似乎不支持动画 GIF,将其“转换”为 GIF(例如imagegif(imagecreatefromgif($file));)可能会起作用。
【解决方案2】:

看看http://php.net/manual/en/function.imagecreatefromgif.php

检查来自 max lloyd 的代码 sn-p。

【讨论】:

    【解决方案3】:

    是的,你可以试试这个 gd 库

    http://php.net/manual/en/book.image.php

    看看imagejpeg()函数

    【讨论】:

      【解决方案4】:

      “剥离”动画的 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);
      

      【讨论】:

        猜你喜欢
        • 2011-08-10
        • 2013-09-05
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        • 2015-08-17
        • 2021-06-05
        • 2019-09-26
        相关资源
        最近更新 更多