使用 WebP 图像加速WEB加载

简介: 笔记

11.png

在文章《 9 个前端性能优化的最佳实践》中提到使用 webpavif 等新图像格式比 jpgpng 等旧格式具有更好的性能。webp 是 Web 上可用的众多图像格式之一,在本文中,将具体了解它是什么、何时应该使用它以及为什么建议使用它。


什么是 WebP 图像


webp 从常见的四种图片格式 JPG(JPEG)PNGSVGGIF 脱颖而出,成为当今WEB上众多图像格式中最流行的。

  • JPG(JPEG) 是图像的首选格式,在这些图像中,尺寸考虑因素比图像细节和质量考虑因素更重要。JPG 易于压缩并且高度可压缩,因此它们的文件大小足够小,这一特征是网站速度优化策略之一。然而,不利的一面是,JPG 格式在压缩(有损压缩)期间会牺牲质量以换取更小的尺寸和大小,并且在压缩时很容易看到伪影,因为 JPG 缺少 alpha 通道(实现真正透明背景所需的图像属性)。
  • PNG 是高质量图像的首选格式,尤其是那些透明度很重要的图像。这是因为 PNG 支持 alpha 通道(透明)和不丢失图像细节的压缩(无损压缩)。但是,PNG 格式的高质量图像的代价是文件体积较大。再加上 PNG 的压缩效率不如 JPG,因此 PNG 的加载时间会更长,并且会占用更多的存储空间。

值得注意的是,由于 PNG 编码颜色的方式,对于包含很少或仅包含一种颜色的图像,PNG 的文件大小可能比 JPG 小。

  • SVG 是可缩放矢量图形。 SVG 通过将图像编码和存储为线条的二维数学坐标,以不同的方式处理图像的整个概念。这种方法意味着大大减少文件大小和确保图像的无损。SVG 的加载速度比任何其他图像格式都快得多,并且占用的存储空间相对较小。然而,由于两个简单的原因,SVG 并不是大多数情况下的解决方案。
  • 首先,SVG 格式的调色板非常有限,因此无法很好地呈现具有大量颜色变化的图像。
  • 其次,由于 SVG 的二维性质,这种图像格式不能很好地表示深度。由于网络上的大多数图像都是颜色变化非常复杂的照片,因此 SVG 通常不是此类图像的最佳选择。

当图像必须易于缩放并在不同尺寸下保持其所有质量时,SVG 是首选格式,SVG 最闪耀的使用场景是作为图标,也是网络动画的一个可能但较少采用的选项。

  • GIF 是最常用于动画的图像格式。它具有无损压缩、8 位颜色格式(256 种颜色)和无 alpha 通道。其有限的调色板意味着每个动画帧的文件大小更小,这在处理动画时特别有用。

那么什么是 WebP 图片?它是谷歌为“现代WEB”开发的图像格式,目的是在通过提出一种适用于所有图像的方法来解决其他流行的WEB图像格式所带来的问题,WebP 的特点:

  • 具有有损和无损压缩的高度可压缩图像
  • alpha 通道支持透明度,在有损和无损压缩中都保持不变
  • 支持动画;

最重要的是,它以比其他流行格式(SVG 除外)更小。


WebP 与其他图像格式


WebP 图像与其它光栅图像格式(PNGJPGGIF)的特征进行快速比较可以看出这一点。WebP 做得更好,应该不足为奇,因为它是一种比其他光栅图像格式更新得多的技术。

JPG 和 WebP 的比较

1.png

原始图像为 JPG,文件大小为 1.42 Mb。上图比较了压缩率为 75% 的原始图像的 JPG(中线左侧)和 WebP(中线右侧)版本。JPG 压缩版本导致文件大小减少 25%,质量略有下降(放大时)。另一方面,WebP 格式在相同的 75% 有损压缩下的文件大小减少 60%WebP 图像的文件大小仅为 574kb,更令人印象深刻的是,它明显比 JPG 压缩版本更清晰。

PNG 和 无损 WebP 的比较

2.png

原始图像是 1.07 MbPNG 图像,使用无损选项以尽可能的保留质量,转换为 WebP 后文件大小减少了 39%,大概 653kb,同时还保留了与 PNG 图像相同的质量。

PNG 和有损 WebP 的比较

3.png

使用 75% 的有损压缩 WebP ,文件大小减少了 91%,仅为 97.2kb。虽然质量变化在缩放时非常明显,但图像质量仍然可用,并且在很多情况下,需要权衡图像质量和带宽及存储空间。

GIF 和 WebP 的比较

使用 873kbGIF 进行的最终测试发现文件大小略有下降至 719kb,相比来说文件大小降低的比较少。

WebP 是一种光栅图像格式(以像素为单位存储图像),因此它不能填补 SVG 用例的空白。然而,正如上面所介绍的,WebP 可以作为其他光栅图像格式的更佳替代方案。


将图像转换为 WebP 格式


将任何图像转换为 WebP 都相对容易,有很多在线站点都支持图像与多种图像格式之间的转换,因此可以开始考虑在网站中使用 WebP。这里推荐两个在线工具:

  • squoosh:支持 WebP 图像的文件转换和压缩
  • ezgif.com:一个简单的在线 GIF 制作工具和用于基本动画 GIF 编辑的工具集。
  • cwebp:node环境下的依赖库

总结


在现代WEB开发中,图像优化是必须的,使用 WebP 图像是开始优化的策略之一,因为它们为更小的文件大小提供了非常高质量的图像。这意味着更快的加载时间和体验。


相关文章
|
6月前
|
缓存 数据库 索引
如何优化Python Web应用的性能,包括静态资源加载、缓存策略等?
```markdown 提升Python Web应用性能的关键点:压缩合并静态资源,使用CDN,设置缓存头;应用和HTTP缓存,ETag配合If-None-Match;优化数据库索引和查询,利用数据库缓存;性能分析优化代码,避免冗余计算,使用异步处理;选择合适Web服务器并调整参数;部署负载均衡器进行横向扩展。每一步都影响整体性能,需按需调整。 ```
58 4
|
16天前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
|
6月前
|
缓存 前端开发 JavaScript
使用Web前端性能优化提高网站加载效率
前端性能优化关键在于提高用户体验和降低资源消耗,Webpack是重要工具。基础优化策略包括减少HTTP请求、资源压缩与缓存、异步加载。Webpack优化配置涉及Tree Shaking、代码分割。高级策略涵盖Long-term Caching、缓存提升和插件优化。打包部署时,自动化流程和环境管理也至关重要。通过这些方法,可提升Web应用速度和体验。
186 0
|
3月前
|
缓存 编解码 前端开发
优化Web应用性能的前端技巧:从加载时间到用户体验
在现代Web开发中,提升前端性能不仅仅是为了缩短页面加载时间,更是为了提供更流畅的用户体验。本文将探讨几种有效的前端优化技术,包括懒加载、代码拆分、资源压缩以及浏览器缓存策略。通过具体实例和最佳实践,读者将能够掌握如何系统地提高Web应用的响应速度,减少资源消耗,并最终改善用户的整体体验。
|
4月前
|
机器学习/深度学习 数据可视化 前端开发
使用Stream实现Web应用,使用YOLOv8模型对图像进行目标检测为例。
使用Stream实现Web应用,使用YOLOv8模型对图像进行目标检测为例。
113 1
|
5月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
47 3
|
6月前
|
缓存 前端开发 UED
构建高性能Web应用:前端资源优化与加载策略探讨
本文将深入剖析前端资源优化和加载策略,包括减少HTTP请求、使用CDN加速、异步加载、资源压缩等技术手段。通过合理的资源管理和加载策略,可以显著提升Web应用的性能和用户体验。
|
6月前
|
Web App开发 前端开发 测试技术
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
182 1
|
应用服务中间件 Linux 网络安全
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
【WEB】当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如何解决
|
Java
【SpringBoot】WebMvcConfigurer实现类不被加载(o.s.web.servlet.PageNotFound : No mapping for GET)的问题解决
【SpringBoot】WebMvcConfigurer实现类不被加载(o.s.web.servlet.PageNotFound : No mapping for GET)的问题解决
1078 0
下一篇
无影云桌面