javascript - 如何使用 HTML5 Canvas 和 Javascript 将 putImageData 与动画 gif 一起使用?

标签 javascript html canvas gif animated

我想在浏览器中播放动画 gif 时处理每一帧的图像数据,我想使用 HTML5 canvas 和 Javascript 来完成。例如,我有一个 gif 动画,我想在浏览器中播放时将每一帧转换为灰度。这可能吗?每当我在动画 gif 中操作图像数据时,只会显示第一帧(正确操作)并且 gif 不会再播放。如果有解决方案,这将是一项非常有用的技术。谢谢。

编辑:有没有办法在 Javascript 中查询动画 gif 的当前帧,这样我就可以在动画进行时将 putImageData 用于图像?

最佳答案

作为this page指出,您可以使用 drawImage() 在 Canvas 上绘制 GIF,目前它会在 Gecko 和 WebKit 中从 GIF 中绘制当前帧——但在 Opera 中不会,而且根据规范也不会,所以依赖这种行为不是一个好主意。据我所知,没有办法从 DOM 中获取单个帧数据;在写 jsgif 之前我研究了一段时间(在另一个答案中提到过,但实际上并不意味着任何类型的实际用途——它的效率非常低)。

如果您可以在服务器上解压帧然后手动设置它们的动画(例如 Gmail does ),那可能是您的最佳选择。

关于javascript - 如何使用 HTML5 Canvas 和 Javascript 将 putImageData 与动画 gif 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677371/

相关文章:

javascript - 在没有引荐来源网址的情况下,Google、Facebook 等如何找出您来自哪个网站?

javascript - 为什么我的 Javascript Ajax 调用没有将值发送到我的 PHP 脚本?

PHP 不发布由 jQuery 生成的文本框值

javascript - Photoshop JavaScript 将图像和 Canvas 调整为特定(非正方形)大小

javascript - 如何将 AntiforgeryToken 与 dropzone.js 一起使用,将 MVC 5 与 Vanilla JS 一起使用?

javascript - 如何将 JSON 文件导入到 javascript 数组

javascript - Socket.io + node.js - 客户端未接收广播发射

jquery - 我想用 CSS 滑出一个元素然后用 jQuery 隐藏它但是隐藏似乎忽略了动画

html - HTML5 Canvas 2D 与 NaCl pp::Graphics2D 的比较(性能)

html - 记录Paper.js路径对象,稍后再重绘