12

我需要将动画 GIF 的所有帧加载到 HTML5 画布上。

请注意,我不想“播放”动画(之前有人问过这个问题),我只想提取所有帧以将它们用作单个图像。

4

3 回答 3

12

Buzzfeed 已对发布的 repo tommitytom 中的代码进行了 librarified。我还没有尝试过,但它看起来不错。

https://github.com/buzzfeed/libgif-js

于 2013-07-02T15:37:30.677 回答
7

看看jsgif;它下载一个 GIF,对其进行解析,然后将文件的各个帧绘制到一个<canvas>. 通过一些挖掘,您应该能够找到绘制各个帧并从那里开始工作的代码。

于 2013-05-30T14:36:50.780 回答
4

抱歉,简短的回答是 JavaScript 无法控制动画 GIF 的当前帧。

长的答案是,有一些方法可以用 JS 做你想做的事,但它们是非常复杂的 hack。

hackish 方式的示例:创建一个画布并且不将其添加到 DOM(因此任何人都不会看到)。在快速循环 (setTimeout) 中,不断绘制到此画布并收集快照。比较画布 ImageData 以查看帧是否已更改。

可能会更好地利用您的时间,看看如何让您的服务器为您拆分它(使用 php/perl/python/etc)

于 2011-01-10T15:17:58.210 回答