前言
在大多数的web页面中,图片占到了页面大小的60%-70%。因此在web开发中,不同的场景使用合适的图片格式对web页面的性能和体验是很重要的。图片格式种类非常多,本文仅针对几种web应用中常用的图片格式:gif、png、jpg、webp进行一个基本的总结。
图片格式分类
gif
采用LZW压缩算法进行编码,是一种无损的基于索引色的图片格式。由于采用了无损压缩,相比古老的bmp格式,尺寸较小,而且支持透明和动画。缺点是由于gif只存储8位索引(也就是最多能表达2^8=256种颜色),色彩复杂、细节丰富的图片不适合保存为gif格式。色彩简单的logo、icon、线框图适合采用gif格式。
jpg
jpg是一种有损的基于直接色的图片格式。由于采用直接色,jpg可使用的颜色有1600w之多(2^24),而人眼识别的颜色数量大约只有1w多种,因此jpg非常适合色彩丰富图片、渐变色。jpg有损压缩移除肉眼无法识别的图片细节后,可以将图片的尺寸大幅度地减小。
但是jpg不适合icon、logo,因为相比gif/png-8,它在文件大小上丝毫没有优势。
png-8
png-8采用无损压缩,是基于8位索引色的位图格式。png-8相比gif对透明的支持更好,同等质量下,尺寸也更小。非常适合作为gif的替代品。但png-8也一个明显的不足就是不支持动画。这也是png-8没办法完全替代gif的重要原因。如果没有动画需求推荐使用png-8来替代gif。
png-24
png-24采用无损压缩,是基于直接色的位图格式。png-24的图片质量堪比bmp,但是却有bmp不具备的尺寸优势。当然相比于jpg,gif,png-8,尺寸上还是要大。正是因为其高品质,无损压缩,非常适合用于源文件或需要二次编辑的图片格式的保存。
png-24与jpg一样能表达丰富的图片细节,但并不能替代jpg。图片存储为png-24比存储为jpg,文件大小至少是jpg的5倍,但在图片品质上的提升却微乎其微。所以除非对品质的要求极高,否则色彩丰富的网络图片还是推荐使用jpg。
png-24与png-8一样也支持透明。
webp
WebP图片是一种新的图像格式,由Google开发。与png、jpg相比,相同的视觉体验下,WebP图像的尺寸缩小了大约30%。另外,WebP图像格式还支持有损压缩、无损压缩、透明和动画。理论上完全可以替代png、jpg、gif等图片格式,当然目前webp的还没有得到全面的支持。
看一下png图片与webp图片的对比:
详见png VS webp。再看一下webp的兼容性:
可以看到webp格式的支持度还不是很好,但是移动端的支持整体还可以。总结
结合以上的介绍,我们了解了各种图片格式的优缺点及适用场景,我们再来通过一个图表来做一个抽象总结:
格式 优点 缺点 适用场景 gif 文件小,支持动画、透明,无兼容性问题 只支持256种颜色 色彩简单的logo、icon、动图 jpg 色彩丰富,文件小 有损压缩,反复保存图片质量下降明显 色彩丰富的图片/渐变图像 png 无损压缩,支持透明,简单图片尺寸小 不支持动画,色彩丰富的图片尺寸大 logo/icon/透明图 webp 文件小,支持有损和无损压缩,支持动画、透明 浏览器兼容性不好 支持webp格式的app和webview 最后附上Google关于图片格式的选择指南:
“我……”看着一脸真诚的唐依依有些手足无措,如果自己没有毁容,她肯定会答应。可如今,自己人不像人,鬼不像鬼,哪里还敢奢望爱情。我不是这个意思。”她自卑的低下头颅。“你只管
2025-09-21 14:16:02
短篇言情小说《青楼狐女成长记》,近期点击率非常高,讲述主角顾青衍萧文渊柳如烟的爱情故事,是作者“一晌温柔”大大所著,主要讲述的是:柳如烟似乎看出了我的困惑,说道:"
2025-09-20 20:07:33
2回到家,我爸的怒火才彻底爆发出来。他气得在客厅里来回踱步,拳头攥得咯咯响。“欺人太甚!简直是欺人太甚!”他一拳砸在茶几上,杯子都震得跳了起来。我妈抱着我,只是一个劲地掉眼
2025-09-20 14:51:47
江南的春,是浸在水汽和花香里的,黏稠又慵懒,与北方宫墙里那种被规整修剪过的、带着肃杀之气的春截然不同。临水小院的日子,像是一轴被缓缓展开的淡墨画卷,起初难免有些无所适从的
2025-09-20 13:49:40
第2章我看着来电显示,深吸一口气接通。“宝贝,天都黑了,怎么还没回来?客户很难缠吗?”林叙装得关怀备至,我强忍着颤抖:“没,快谈完了。”“那正好,你谈完直接开车来新房,我约了设计师,
2025-09-20 11:23:47
他站在他的白马边,似乎正要离开。顾暮雨犹豫了一下,还是上前叫住他:“桑吉柴央,我有件事要跟你说。”桑吉柴央脚步一顿,目光落到她身上,低沉的嗓音缓缓响起:“什么事?”顾暮雨深吸一
2025-09-20 10:28:03