谈谈前端关于选择图片的性能优化

1,171 阅读3分钟
在项目中最经常用的图片格式 jpg png gif svg webp ico 【本人在项目中经常遇到的就这些 大家有补充的欢迎指导】

GIF

优点: 采用LZW压缩算法进行编码,是一种无损的基于索引色的图片格式。由于采用了无损压缩,相比古老的bmp格式,尺寸较小,而且支持透明和动画。

缺点: gif只存储8位索引(也就是最多能表达2^8=256种颜色),色彩复杂、细节丰富的图片不适合保存为gif格式。色彩简单的logo、icon、线框图适合采用gif格式。

应用场景: 主要用于比较小的动态图标。

PNG8

优点: png-8采用无损压缩,是基于8位索引色的位图格式。png-8相比gif对透明的支持更好,同等质量下,尺寸也更小。非常适合作为gif的替代品。

缺点: png-8也一个明显的不足就是不支持动画。

应用场景: 主要用于小图标或颜色简单对比强烈的小的背景图。

PNG24

优点: png-24采用无损压缩,是基于直接色的位图格式。png-24的图片质量堪比bmp,但是却有bmp不具备的尺寸优势。当然相比于jpg,gif,png-8,尺寸上还是要大。正是因为其高品质,无损压缩,非常适合用于源文件或需要二次编辑的图片格式的保存。支持透明。

缺点: 图片存储为png-24比存储为jpg,文件大小至少是jpg的5倍,但在图片品质上的提升却微乎其微。所以除非对品质的要求极高,否则色彩丰富的网络图片还是推荐使用jpg。

应用场景: 对品质的要求极高的图片。

PNG24

优点: jpg是一种有损的基于直接色的图片格式。由于采用直接色,jpg可使用的颜色有1600w之多(2^24),而人眼识别的颜色数量大约只有1w多种,因此jpg非常适合色彩丰富图片、渐变色。jpg有损压缩移除肉眼无法识别的图片细节后,可以将图片的尺寸大幅度地减小。

缺点: jpg不适合icon、logo,因为相比gif/png-8,它在文件大小上丝毫没有优势。

应用场景: 色彩丰富的网络图片使用。

SVG

优点: SVG是矢量图形,不受像素影响,在不同平台上都表现良好;可以通过JS控制实现动画效果。

缺点: 因为是矢量图 不能展现位图的丰富真实色彩

应用场景: 矢量图形,可缩放;无需多端、多分辨率适配;支持多种编辑,具有较强的交互特性;

webp

优点: WebP图片是一种新的图像格式,由Google开发。与png、jpg相比,相同的视觉体验下,WebP图像的尺寸缩小了大约30%。另外,WebP图像格式还支持有损压缩、无损压缩、透明和动画。理论上完全可以替代png、jpg、gif等图片格式。

缺点: 目前webp的还没有得到全面的支持。

webp 兼容性

应用场景: 高压缩比,适合网络快速传输