为什么 GIF 格式迟迟没有被取代?
GIF 格式自 1987 年由 CompuServe 公司引入后,已经度过了 30 多个年头了,恐怕比有些知友的年纪还大。1989 年 CompuServe 发布了一个名为 89a 的增强版本,正式支持了透明(Alpha 通道)和多帧动画。随着大名鼎鼎的浏览器鼻祖——网景浏览器,在 1995 年为 GIF 添加了无限循环功能后,GIF 开始了它辉煌的「一生」。
但对于图像存储来说,颜色就是生命,GIF 由于采用 8 位压缩,最多只能处理 256(2 的八次方) 种颜色。放眼如今互联网的「花花世界」,这显然已经捉襟见肘。我们在 Photoshop 里做小表情包时,最常用的优化手段就是用「仿色」来减缓图像透明边缘的杂边问题。
而后,Mozilla 社区推崇带有动画的 APNG(Animated Portable Network Graphics),所以Firefox 3 开始支持该格式,开发者也一直推荐该格式作为 PNG 标准的一部分,但最终 PNG 组织投票以 10:8 否决了 APNG 进入官方标准,这事儿也就不了了之啦。
Chrome 则推崇自己的 WebP 格式,Animated WebP(WebM) 则是可以支持动画的 WebP,它包括了真正的(8bit)alpha通道,每一帧还可以按照需要设置成有损或无损,而 GIF 只有1bit,相比 GIF文件体积可以压缩的更小。在最新的 Chrome 32 for Android 中进一步优化了性能,默认禁用了双击缩放等。Chrome 9 开始支持该格式。
Opera 是个老好人,从 9.5-12.1 开始支持 APNG,从 11.1+ 开始支持 WebP,转投 Blink 内核后,自然是和 Chrome 保持一致了。
所以 GIF 迟迟没有被新的格式取代也是各个社区对各自利益相持的结果,最终还是会被逐步取代。
这里有一个在线转换 GIF 为 WebP 动画格式的网站:Convert images to WebP
对比两者,WebP 减少了约26.28%的大小。
GIF
http://ww2.sinaimg.cn/mw1024/c1608aa0gw1ea377vdngvg20bo0byhdt.gif
WebP
http://gtms01.alicdn.com/tps/i1/T1EXtgXy4eXXX_WqbX.webp
2015-06-15 更新:
iOS 8.1 开始已经支持 APNG 格式了,简直鹅妹子硬!
微软在全新的 Edge 浏览器上开放了很多,但对 APNG 这事,仍然是保守态度。从 Edge 的推特回复来看,目前并不打算支持该格式。难道还是要搞一个自己的动画格式?https://twitter.com/MSEdgeDev/status/596197829414035456
此外,还有 Multiple-image Network Graphics(MNG)——多帧PNG动画图形格式,功能类似GIF。但是目前多数主流浏览器均不直接支持 MNG。
测试页面:GIF vs APNG vs WebP
2015年08月04日 更新:
Chrome 准备开始支持 APNG 啦 https://code.google.com/p/chromium/issues/detail?id=437662
2020-04-25 更新:
世事难料,谁曾想微软的 Edge 如今转投 Chromium 怀抱了,如此一来所有主流浏览器都支持了 APNG,只等相关的图片制作工具跟进了。
2021-07-23 更新:
转眼来到了 2021 年,主流的设计软件都支持了导出 PNG 序列的功能,通过 FFmpeg,我们可以很容易的将多张 PNG(PNG 序列) 快速转换为 APNG 格式,且保持相对较小的文件体积。
ffmpeg -i name%02d.png -plays 0 -vf setpts=PTS-STARTPTS -f apng coverart.png
转换后的 APNG 示例:
随着互联网的飞速发展,静态图片已经不足以承载人们对于内容的表达。在一些视频剪辑软件中,我们也经常可以看到动画贴纸的身影。
此时,眼看隔壁 WebP、AVIF,甚至 JEPG(JXL) 都有了全新的动画支持,W3C 终于坐不住了,成立了 PNG 标准工作组。PNG 是 W3C 最早的规范之一,最初于 1996 年发布,之后于 2003 年(与 ISO JTC 1/SC 24 联合)更新发布第二版。新的工作组旨在开发并维护第三版 PNG 规范:https://w3c.github.io/PNG-spec/,主要功能包括:
- 处理目前收集的勘误表
- 计划向 PNG 格式添加对 HDR 图像的支持
- 动画扩展(APNG)已被广泛部署,但其当前并不是正式标准的一部分,而是作为 libpng 的补丁或扩展来实现的(例如 APNGKit),因此新版规范预计添加这一已得到广泛部署的动画 PNG 扩展。
PNG 从 1995 年 Unisys 公司发明至今,已经走过了 25 个年头了,伴随着社区中 WebP、AVIF 等一批新的动画图片格式逐渐崭露头角,动画图片终于迎来了新的春天。
展望未来,纵使 APNG 「后浪鲸波,志在千里」,但 GIF 仍然是「老骥伏枥,未有竟时」。在动画这片绚丽江河上,究竟是老兵们延续梦想,还是 AVIF、JXL 逐鹿中原?我们拭目以待……