60%的网站流量来自图片,图片优化可以大幅影响网站流量。
图片格式 | 支持透明 | 动画支持 | 压缩方式 | 浏览器支持 | 相对原图大小 | 适应场景 |
---|---|---|---|---|---|---|
baseline-jpeg | 不支持 | 不支持 | 有损 | 所有 | 由画质决定 | 所有通用场景 |
progressive-jpeg | 不支持 | 不支持 | 有损 | 所有 | 由画质决定 | 所有通用场景, 渐进式加载 |
gif | 支持 | 支持 | 无损 | 所有 | 由帧数和每帧图片大小决定 | 简单颜色,动画 |
png | 支持 | 不支持 | 无损 | 所有 | 由png色值位数决定 | 需要透明时 |
webp | 支持 | 不支持 | 有损 | Chrome、Opera | 由压缩率决定 | 复杂颜色及形状,浏览器平台可预知 |
apng | 支持 | 支持 | 无损 | Firefox、Safari、iOS Safari | 由每帧图片决定 | 需要半透明效果的动画 |
svg | 支持 | 支持 | 无损 | 所有(IE8以上) | 由内容和特效复杂度决定 | 简单图形,需要良好的放缩体验,需要动态控制图片特效 |
bpg | 支持 | 支持 | 有损 | 不支持,需要js解码 | 由画质决定 | jpeg上需要极限优化的场景 |
jpeg优势: 非常通用,JPEG在色调及颜色平滑变化的相片或是写实绘画(painting)上可以达到它最佳的效果。 jpeg劣势: 它并不适合于线条绘图(drawing)和其他文字或图示(iconic)的图形,因为它的压缩方法用在这些图形的型态上,会得到不适当的结果;
优势:
webp上目前可行的应用场景:
- 1.客户端软件,内嵌了基于Chromium的webview,这类浏览器中应用的网页是可以完全使用webp格式,提升加载渲染速度,不考虑兼容。
- 2.用node-webkit开发的程序,用webp可以减少文件包的体积。
- 3.移动应用 或 网页游戏 ,界面需要大量图片,可以嵌入webp的解码包,能够节省用户流量,提升访问速度
优势:
- 对于png图片,webp比png小了45%,但是缺点是你压缩的时候需要的时间更久了;
劣势:
- 兼容性不太好, 只有opera,和chrome支持;
压缩图片方式比较多,例如下面的部分工具平台:
Kraken (Web) 主页: https://kraken.io/
智图 主页: http://zhitu.tencent.com/ 支持原图png转为jpeg和webp(目前不支持bpg),并提供各种压缩比压缩,目前在tx内部广泛使用。
目前bpg格式图片也有部分公司在试用。这方面也可以尝试下。
上面提供了web图片的一些格式特点和图片优化的可行方案,具体的场景需要考虑选择不同的方式来进行优化。当然常见的优化思路为:页面静态资源图片使用css,canvas,svg,iconfont,sprite,base64来优化,后台返回的数据资源图片则通过响应式、图片压缩来优化,同时尽可能考虑使用新的更高压缩比的图片来做图片转化。例如webp、bpg