2012-03-31 122 views
0

我想在Java applet中控制动画GIF的速度。有没有办法做到这一点?如果没有,有没有办法访问动画GIF的数据,这样小程序可以通过图像自己绘制动画图像?如何控制动画GIF的速度?

+0

*“我如何控制Java applet中动画GIF的速度?”*完全一样,您可以在应用程序中执行动画。因此'Applet'是无关紧要的。 – 2012-03-31 07:51:05

回答

2

我认为帧频嵌入到GIF中。你可以以某种方式从GIF中提取图像,但这比从单个图像开始并使用JS进行动画制作要困难得多,这比以您的首选帧速率重新创建GIF更困难。

如果您打算只使用一次GIF并且帧速率不会改变,只需重新创建GIF即可。如果您需要根据applet的输入更改速度,则可以使用方法here。它交替之间两个gifs,但没有什么能阻止你加载PNG和交替通过这些阵列。

0

动画GIF格式包含每帧的数据以及延迟值(显示该帧的时间长度)。每帧的延迟是分开的,并以两个字节存储,并测量为几百秒。

Netscape(当它是网页时),无法显示帧速度超过每秒10。所以很多工具只是把它拧紧,并将所有帧的延迟设置为0.很多旧的GIF和旧工具都会使这些延迟时间延长。

通过更快的计算机和浏览器,他们通过检查是否有任何帧延迟了< = 50ms(20+ fps)来解决此问题。如果他们这样做,延迟增加到100ms(10fps)。

原则上,最好的解决方案是修正你正在使用的GIF,以便在它们中有精确的帧延迟。如果这不可行,请使用相同的旧解决方法。如果指定的延迟是< = 50ms,则将帧从动画GIF中分离出来并自己动画,默认延迟100ms。这会给你和大多数浏览器中看到的一样的行为。

阅读关于这一段时间。想想维基百科上提到的大部分细节(包括动画GIF格式和每帧延迟)。如果你真的想要一些可靠的参考资料,我可以为你挖掘它们。