在 PHP 中读取动画 GIF

Posted

技术标签:

【中文标题】在 PHP 中读取动画 GIF【英文标题】:Reading animated GIF in PHP 【发布时间】:2012-02-20 05:28:46 【问题描述】:

我需要 的各个帧。

我一直使用 GD 来处理图像,但不幸的是它缺乏处理 GIF 图像中的多个帧的能力。

我目前正在分割 GIF 文件格式以尝试制作我自己的提取器,但在我继续之前,我想知道是否有人对已经这样做的代码有任何指针 - 我可以'肯定不是第一个想用 php 处理动画的人。

【问题讨论】:

你检查过 ImageMagick 吗?我从未在 PHP 中使用过它,但它看起来可能能够完成您正在寻找的事情。查看example #5 on this page. 如果 PHP.net 的一半没有宕机就好了,最重要的是 static.php.netpecl.php.net... 【参考方案1】:

是的。我认为 ImageMagick 扩展在您的情况下应该可以很好地工作。我以前在我的 PHP 代码中使用过它,虽然我以前没有使用过 GD,但 ImageMagick 已经足以满足我的次要图像处理需求。 =)

$agif = new Imagick("animated.gif");

// Loop over all individual frames 
foreach ($agif as $frame) 

    // Do whatever you need to do here 



// Save the modified gif
$agif->writeImages("new_animated.gif", true);

ImageMagick PHP 扩展提供的全套功能可以在http://php.net/manual/en/book.imagick.php找到

【讨论】:

我在 Windows 上运行 PHP,但我不知道如何添加 imagick。我知道 SO 并不是真正针对这类问题,但您知道如何让它在 Windows 上运行吗? 您需要先从此处 imagemagick.org/script/binary-releases.php#windows> 将 Windows 安装程序安装到您的系统上,但是 PHP 扩展的常规安装不适用于 Windows,所以恐怕我不能在那里分享很多经验。这个关于 SO 的问题可能会有所帮助。 ***.com/questions/3036847/…> =) 干杯!

以上是关于在 PHP 中读取动画 GIF的主要内容,如果未能解决你的问题,请参考以下文章

PHP ImageMagick 在每一帧动画 Gif 中改变颜色

如何使用 ImageMagick (php) 调整动画 gif 的大小?

如何使用 PHP 使动画 gif 的背景透明?

调整动画 GIF 大小的 Python 问题

php imagick生成gif动画的方法

PHP - 从两个 JPEG 图像创建简单的动画 GIF?