更小、更快:图片格式

29 阅读2分钟

既然网络请求资源这么多,那我直接让资源更小不就完事了。一方面减轻服务器压力,另一方面减轻客户端请求压力。


前端常见图片格式

都来个示例,同一张图片不同格式,观察质量和大小

图片格式

JPEG/JPG

JPG格式,大小483KiB

  • 兼容性:几乎所有浏览器都支持
  • 优点:有所压缩,可在文件大小和图片质量之间取得平衡,
  • 缺点:不支持透明度
  • 使用场景:照片和复杂图片,以及不需要透明背景的图片

PNG

PNG格式,大小2.2MiB

  • 兼容性:几乎所有浏览器都支持
  • 优点: 无损压缩,支持透明度和更多颜色
  • 缺点:文件大小通常较大
  • 使用场景:适合图标、图形和需要透明背景的图片

GIF

GIF格式,大小:780KiB

  • 兼容性: 良好,几乎所有浏览器都支持
  • 优点: 支持动画
  • 缺点: 色彩表现不如 JPEG 和 PNG,且文件大小较大
  • 使用场景:适合简单动画和图标

Webp

Webp格式大小:126KiB

WebP 是一种由 Google 开发的图像格式,具有良好的压缩率和图像质量,并支持透明度和动画。

  • 优点:大小变小的情况下,质量不变,支持透明度。
  • 唯一的缺点:兼容性,可能一些非常老旧的浏览器不能加载。
  • 使用场景:替代JPG 或者 PNG

SVG

SVG格式,大小:2.7MiB 如果这个时候对浏览器界面进行缩放,会发现SVG图片在变化 这是因为SVG图片是一条条path路径组成,每个path中的点就是每个像素点的相对位置

xnyh.svg

  • 兼容性: 良好,几乎所有现代浏览器都支持
  • 优点: 矢量图形,可缩放而不失真
  • 缺点: 不适合存储复杂的照片或图像,文件大小可能较大
  • 使用场景:适合图标和插图。

图片大小排序

SVG > PNG > GIT > JPG > Webp

图片质量

SVG > WebP = PNG > JPG > GIF

可见的都各有特色,所以在实际项目中,要根据具体需求和优化要求选择合适的图片格式。在大小和质量上考量,做性能优化。


总结

如果说让我在开发过程中,我大概率会做以下:

  • 照片资源:jpg
  • 动图:gif
  • 矢量图标: svg
  • 图片资源:webp

当然只是个人习惯,如果有其它考量,便是质量和加载速度(大小)。