2011-04-15 37 views
1

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

编辑:有没有办法查询Javascript中的动画GIF的当前帧,所以我可以使用putImageData作为动画进展的图像?

回答

2

由于this page指出,您可以使用drawImage()在画布上绘制GIF,并且此时它将从Gecko和WebKit中的GIF中绘制当前帧 - 但不是在Opera中,还不符合规范,所以依靠这种行为并不是一个好主意。据我所知,没有办法从DOM获取单个帧数据;在编写jsgif(在另一个答案中提到过,但并不真正用于任何实际用途,因为它是 - 效率非常低)之前,我研究了一下这段时间。

如果您可以解开服务器上的帧并将其手动设置为动画(例如Gmail does),那么这可能是您的最佳选择。

+0

您链接的第一页是非常有用和有见地的。实际上,我可以很容易地将基于各自原始图像的画布图像转换为灰度图,并保留了他们的动画,这正是我所需要的。歌剧使其中一些正确,其他人不太好;当我尝试这个时,我必须留意规范。谢谢! – dmoonman 2011-04-18 01:28:04

相关问题