我需要将动画 GIF 的所有帧加载到 HTML5 画布上。
请注意,我不想“播放”动画(之前有人问过这个问题),我只想提取所有帧以将它们用作单个图像。
我需要将动画 GIF 的所有帧加载到 HTML5 画布上。
请注意,我不想“播放”动画(之前有人问过这个问题),我只想提取所有帧以将它们用作单个图像。
Buzzfeed 已对发布的 repo tommitytom 中的代码进行了 librarified。我还没有尝试过,但它看起来不错。
看看jsgif;它下载一个 GIF,对其进行解析,然后将文件的各个帧绘制到一个<canvas>
. 通过一些挖掘,您应该能够找到绘制各个帧并从那里开始工作的代码。
抱歉,简短的回答是 JavaScript 无法控制动画 GIF 的当前帧。
长的答案是,有一些方法可以用 JS 做你想做的事,但它们是非常复杂的 hack。
hackish 方式的示例:创建一个画布并且不将其添加到 DOM(因此任何人都不会看到)。在快速循环 (setTimeout) 中,不断绘制到此画布并收集快照。比较画布 ImageData 以查看帧是否已更改。
可能会更好地利用您的时间,看看如何让您的服务器为您拆分它(使用 php/perl/python/etc)