关于动态gif的帧速
浏览:1753次 出处信息
做了一个小实验,结果预期的目的失败了,倒是额外发现了关于动态gif帧速的一个链接:http://humpy77.deviantart.com/journal/12374968/
如果没耐心读英文,我中文介绍一下:
动态GIF的定义,是弄一组GIF图片,然后指定渲染图片序列的时候,处理下一帧之前 delay 多长时间。这个时间是一个整数n,表示延时 n * 1/100 秒。
理论上我们可以得到非常棒的动画图像,要知道电影也不过每秒24帧而已,但我们从来没有看到过效果很好的动态gif,不是么?
原因在浏览器对这个规范的实现上。所有的浏览器,都不支持 n=0,1的延迟,而且如果把值设成0或1,会得到更糟糕的动画效果!
- IE,所有n<6的延迟,统统提高到10 (0.1秒 or 10fps)
- Firefox,所有n<2的延迟,统统提高到 10。就是说 n=2 确实可以在firefox上看到很漂亮的动画,可惜IE上会慢得一塌糊涂
- Opera,最糟糕,最小是0.1秒
- Safari,和Firefox各有利弊,所有n<3的延迟,会提高到3。换句话说你不小心做了一个n=1的图,在其它浏览器下都悲剧了,但在Safari上还凑合
- 最后,上面都是2007年的测试,我自己又重新用各个浏览器最新的版本重新测了一下,看n=2以及n=6动画的表现:
- 对IE 8/Firefox3.6来说,上面表现一样
- 新版的Opera表现很好,n=2的时候,效果和Firefox一致,赞!没有测是否支持n=1
- 新版Safari,至少是Windows上的Safari 4吧,比老版本退步了。n小于某个值的时候,会提高到一个更高的值(应该是10)。在我测试里n=6的图片,效果比n=2要好;但不知道现在它支持的最小值是多少,也许仍然是3?n<3的时候n=10?
- Chrome表现和Safari一样。我猜所有webkit浏览器,应该都一样的
等下周有时间了生成n=1,2,3,4,5,6,10, 再全面测试看看
结论,千万不要用 0/1 来指定 n,这就彻底茶几了;用2/3/4/5?在Firefox和Opera下效果会如你预期;但为了兼容所有浏览器,还是用6吧
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:也说idea的演化,以及scrum
后一篇:关于重构和重写 >>
文章信息
- 作者:qyb 来源: BT的花 blogs
- 标签: gif 帧速
- 发布时间:2010-03-01 13:44:38
近3天十大热文
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] 图书馆的世界纪录
- [53] android 开发入门
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [32] 视觉调整-设计师 vs. 逻辑