为什么大家都在用 WebP?

news2024/11/30 8:49:32

WebP 是谷歌在 2010 年提出的一种新型的图片格式,放到现在来讲,已经不算是“新”技术了,毕竟已经有了更新的 JPEG XL 和 AVIF 。但是在日常工作中,大家时常会碰到保存下来的图片的后缀是 .webp。那么 WebP 到底有什么魔力,让越来越多的网站“抛弃”常用的 PNG、JPG 而青睐它呢?

了解 WebP

长期以来,加载速度一直是优化网站最重要的因素之一,访问者和搜索引擎都将调用页面所需的时间作为重要的评价标准。精简的代码或使用缓存机制是解决网站快速加载方案的一部分,而网页中展示的图片大小也影响着加载速度,这时 WebP 就有了用武之地。

WebP 图片格式来源于 VP8 视频编解码器,也就是 WebM 视频容器,是 WebM 视频格式的单个压缩框架。VP8 编解码器的一个强大功能就是能够进行帧内压缩,能将视频的每个帧都被压缩,再压缩帧与帧之间的差异。WebP 的压缩算法分为有损压缩算法和无损压缩算法。

有损压缩算法:基于 VP8 视频编解码器,它可以通过牺牲一些图像细节来减小文件大小。有损压缩算法可以根据图像的特征和颜色分布等信息,选择最佳的压缩方式和参数,以达到最小化文件大小的目的。

无损压缩算法:基于 LZ77 算法和 ANS 编码器,它可以在保持完整图像的情况下减小文件大小。无损压缩算法可以根据图像的特征和颜色分布等信息,选择最佳的压缩方式和参数。

WebP 的高效压缩和快速加载速度,使其成为网页设计的理想格式。WebP 广泛应用于许多网站和应用程序中,包括 Google Chrome 浏览器、YouTube、Facebook、Pinterest 和 WordPress 等。虽然前几年有部分浏览器不支持 WebP,到了今天,除了已经退休的 IE 浏览器,基本上浏览器都已经开放支持 WebP。

WebP 的优势

对于含有大量图片的网站,它们大部分会使用 WebP 格式的图片,不仅可以减少流量带宽,也可以减少用户访问的加载时间,提高用户体验。目前 WebP 已成为主流网站喜欢的图片格式。

更小的文件大小

相较于传统的 PNG、JPG,甚至是动图 GIF 的格式,WebP 比它们的空间更小。根据谷歌的测试,WebP 格式的图片可以比 JPEG 格式的图片小 26%-34%,比 PNG 格式的图片小 25%-34 %。

更快的加载速度

由于 WebP 格式的图片文件更小,所以可以更快地加载和显示,提高用户的访问速度和体验。特别是在移动设备和低带宽环境下,WebP 格式的图片可以更快地加载和显示,减少用户的等待时间和流量消耗。

高质量的图像显示

WebP 格式的图片可以提供高质量的图像显示效果,尤其是在有损压缩的情况下,可以保持比 JPEG 格式更好的图像质量。这是因为 WebP 格式的图片采用了基于 VP8 视频编解码器的压缩算法,可以在牺牲一部分细节的情况下保持更好的图像质量。

支持透明度、动画效果

WebP 格式的图片不仅可以支持有损和无损的压缩方式,还支持透明度和动画效果。特别是在处理透明度和动画效果时,WebP 格式的图片可以比 GIF 和 PNG 格式更小,同时保持更好的显示效果。

在网页中运用 WebP

既然 WebP 这么好用,那么如何在网页中运用 WebP 图片呢?这其实很简单,我们可以通过 HTML 代码,在网页中运用 WebP 格式的图片。例如:xml

<picture>
  <source srcset="image.webp" type="image/webp">
  <source srcset="image.jpg" type="image/jpeg">
  <img src="image.jpg" alt="image">
</picture>

在上面的代码中, 元素包含了两个 元素和一个 元素。 元素用于指定不同格式的图片, 元素则是在所有格式的图片都无法显示时显示的默认图片。替换:对于不支持 WebP 格式的浏览器,可以使用 JavaScript 进行检测和替换。例如:stylus

var img = new Image();
img.onload = function() {
  if (img.width > 0 && img.height > 0) {
    document.getElementById('my-img').src = 'image.webp';
  }
}
img.onerror = function() {
  document.getElementById('my-img').src = 'image.jpg';
}
img.src = 'image.webp';

在上面的代码中,使用 JavaScript 创建一个新的 Image 对象,并指定其 src 属性为 WebP 格式的图片。如果图片能够正常加载,则将 元素的 src 属性设置为 WebP 格式的图片,否则将其设置为其他格式的图片。

这时,也有用户会担心,并不是所有的浏览器都支持 WebP,例如 IE。这里强烈推荐下又拍云 WebP 自适应功能,无需网站服务器和前端等层面技术上的任何改动,就能解除你的顾虑。在后台一键开启 WebP 自适应功能,即可通过 CDN 平台智能判断客户端浏览器是否支持 WebP 解码,如果支持则返回 WebP 格式图片,如果不支持则会返回原图,在客户端以及源站无需任何改动。

技术的发展总是迅速的,近两年来 JPEG XL 和 AVIF 两种新兴的图片格式已经逐渐开始流行,它们在压缩效率、图像细节保留等方面已经在一定程度上超过了 WebP,让我们期待一下未来的图片格式发展吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Explain 性能分析

目录 1. 能干什么 2. 如何分析 3. 各字段解释 1. 能干什么 使用 explainsql 的方式&#xff0c;分析查询语句的性能瓶颈。 ① 表的读取顺序&#xff1b; ② 数据读取操作的操作类型&#xff1b; ③ 哪些索引可以使用&#xff1b; ④ 哪些索引被实际使用&#xff1b; ⑤ 表之…

Latex之在作者名字后面加上OCRID的图标

\usepackage{orcidlink} \author{Bob\textsuperscript{\orcidlink{0000-0000-0000-0000}}}效果如图

Java8实战-总结27

Java8实战-总结27 用流收集数据分区分区的优势将数字按质数和非质数分区 用流收集数据 分区 分区是分组的特殊情况&#xff1a;由一个谓词(返回一个布尔值的函数)作为分类函数&#xff0c;它称分区函数。分区函数返回一个布尔值&#xff0c;这意味着得到的分组Map的键类型是B…

浅谈C++|STL初识篇

一.STL的诞生 长久以来&#xff0c;软件界一直希望建立一种可重复利用的东西。 .C的面向对象和泛型编程思想&#xff0c;目的就是复用性的提升 大多情况下&#xff0c;数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准&#xff0c;诞…

linux入门---命名管道

如何创建命名管道 使用mkfifo函数就可以在程序里面创建管道文件&#xff0c;该函数的声明如下&#xff1a; 该函数需要两个参数&#xff0c;第一个参数表示要在哪个路径下创建管道文件并且这个路径得待上管道文件的名字&#xff0c;因为每个文件都有对应的权限&#xff0c;所…

基于springboot+vue的网络海鲜商城

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【Spatial-Temporal Action Localization(二)】论文阅读2017年

文章目录 1. ActionVLAD: Learning spatio-temporal aggregation for action classification [code](https://github.com/rohitgirdhar/ActionVLAD/)[](https://github.com/rohitgirdhar/ActionVLAD/)摘要和结论引言&#xff1a;针对痛点和贡献相关工作模型框架思考不足之处 2.…

Windows下防火墙端口配置

在电脑或者服务器上部署某个应用后&#xff0c;如果需要对外提供服务可能就需要在主机防火墙上设置开启需要的端口&#xff0c;那么具体怎样操作呢 1.打开windows防火墙 2.设置防火墙入站规则 如下图“高级安全Windows Defender 防火墙”页面&#xff0c;点击左侧“入站规则”…

5.10.WebRTC接口宏

那今天呢&#xff1f;我给大家介绍一下web rtc的接口宏&#xff0c;那之所以在现成的章节中要介绍接口宏。是由于接口在调用的过程中啊&#xff0c;会发生线程的切换&#xff0c;所以把接口宏这部分知识我们放在线程这一章还算比较合适的。 那另外呢&#xff0c;我们对于接口…

【Linux-day11-线程的创建与同步】

Linux 线程的创建与同步 线程的概念 线程是进程内部的一条执行序列或执行路径&#xff0c;一个进程可以包含多条线程。 进程与线程的区别 进程是资源分配的最小单位&#xff0c;线程是 CPU 调度的最小单位进程有自己的独立地址空间&#xff0c;线程共享进程中的地址空间进…

ODC解读:数据脱敏在数据库协同开发的关键作用

肖杨 OceanBase生态产品研发工程师 OceanBase 生态产品研发工程师&#xff0c;山地骑行爱好者&#xff0c;ODC 团队核心成员&#xff0c;负责数据安全合规和系统集成&#xff0c;对 Java EE、 AI 大模型、MCU 芯片 等技术有着浓厚兴趣。 在数据库协同开发领域&#xff0c;敏感…

Spring MVC 七 - Locale 本地化

Spring各模块都支持国际化&#xff0c;SpringMVC也同样支持。DispatcherServlet通过Locale Resovler自动根据客户端的Locale支持国际化。 request请求上来后&#xff0c;DispatcherServlet查找并设置Locale Resovler&#xff0c;我们可以通过RequestContext.getLocale()获取到…

ipad手写笔哪个好用?电容笔性价比高的品牌

现今&#xff0c;使用电容笔的人越来越多&#xff0c;各大品牌厂商对于电容笔各种性能的设计也愈发用心。那么&#xff0c;电容笔哪个品牌性价比高&#xff1f;下面&#xff0c;我来给大家推荐几款好用又平价的电容笔&#xff0c;可以当个参考。 一、主动式电容笔和被动式电容…

mysql 密码修改

1、使用mysqladmin修改root密码 使用 mysqladmin 命令修改 MySQL 的 root 用户密码格式为 mysqladmin -u用户名 -p旧密码 password 新密码 注意&#xff1a;下图修改密码的命令中 -uroot 和 -proot 是整体&#xff0c;不要写成 -u root -p root&#xff0c;-u 和 root 间可以加…

分享一下蛋糕店怎么在微信小程序上开店

蛋糕店如何在微信小程序上开店 随着移动互联网的发展&#xff0c;微信小程序作为一种新型的商业模式&#xff0c;正逐渐成为各行各业拓展线上业务的重要手段。对于蛋糕店来说&#xff0c;利用微信小程序开店&#xff0c;不仅有利于拓展销售渠道&#xff0c;还能提高品牌知名度…

动漫小可爱-网页添加L2Dwidget.js

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>动漫小可爱</title><link rel"stylesh…

windows下MySQL服务不见,服务无法启动,服务闪退,提示“本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止”

文章目录 前情提示1.解决MySQL服务消失2.解决MySQL服务无法启动 前情提示 后台启动MySQL服务出现闪退 或 “本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止”&#xff0c;可以参考以下方法。 我的电脑上安装了双版本MySQL&#xff0c;这里…

Zabbix监控平台概念

1.概念 Zabbix是一款开源的、免费的、分布式监控平台支持web管理&#xff0c;WEB界面可以方便管理员使用可以监控硬件服务器CPU温度、风扇转速、操作系统CPU、EME、DISK、I/O、流量宽带、负载、端口、进程等Zabbix是C/S架构&#xff0c;Client客户端和Server端组成 2.Zabbix可…

2596. 检查骑士巡视方案(Java)

骑士在一张 n x n 的棋盘上巡视。在有效的巡视方案中&#xff0c;骑士会从棋盘的 左上角出发&#xff0c;并且访问棋盘上的每个格子恰好一次 。 给你一个 n x n 的整数矩阵 grid &#xff0c;由范围 [0, n * n - 1] 内的不同整数组成&#xff0c;其中 grid[row][col] 表示单元格…

碎片笔记 | 大模型攻防简报

前言&#xff1a;与传统的AI攻防&#xff08;后门攻击、对抗样本、投毒攻击等&#xff09;不同&#xff0c;如今的大模型攻防涉及以下多个方面的内容&#xff1a; 目录 一、大模型的可信问题1.1 虚假内容生成1.2 隐私泄露 二、大模型的模型安全问题&#xff08;传统AI攻防&…