WebP简单介绍
来源:互联网 发布:java swing绝对布局 编辑:程序博客网 时间:2024/06/07 22:04
WebP
是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自视频编码格式VP8,被认为是WebM多媒体格式的姊妹项目,是由Google在购买On2 Technologies后发展出来,以BSD授权条款发布。
- 为什么使用WebP
- 兼容性
- 检测与使用
- 服务器通过Accept headers的内容与浏览器协商
- Modernizr
- HTML5 元素
- 在自己的 JavaScript 代码中
- 参考文章
为什么使用WebP
WebP
主要优势是体积小。根据Google Developers上的这篇文章,WebP
格式图片的体积比相同质量的JPEG
格式图片小25%-34%。
同时WebP
还支持动态图像。在相同色块较多的情况下,动态 WebP
的体积甚至只有 gif 体积的20%。
如这个 gif原始大小4.9M,使用阿里云 oss 提供的 Webp 转换 API 进行转换后得到的WebP 格式图片大小仅906K。
兼容性
Caniuse 上的数据显示大约有71%的国内用户的浏览器支持WebP
格式,使用WebP
格式将带来较明显的效果。
检测与使用
由于不是所有的浏览器都支持
WebP
,所以要检测浏览器是否支持,然后在不支持的浏览器中使用其他更通用的格式。
服务器通过Accept headers
的内容与浏览器协商
服务端根据客户端发送的Accept headers
的内容是否包含image/webp
来决定是否使用WebP
格式的图片。
- Deploying New Image Formats on the Web
- How To Reduce Image Size With WebP Automagically
Modernizr
Modernizr是用于检测浏览器对HTML5
和CSS3
特性支持情况的 JavaScript 库,其中与WebP
相关的属性有Modernizr.webp
, Modernizr.webp.lossless
, Modernizr.webp.alpha
和Modernizr.webp.animation
。
HTML5 元素
通过HTML5的<picture>
元素可以很方便地使用WebP
格式,并在不支持的情况下使用默认格式的图片。
<picture> <source type="image/webp" srcset="images/butterfly.webp"> <img src="images/butterfly.jpg" alt="a butterfly"></picture>
在自己的 JavaScript 代码中
可以用几张极小的WebP
图片来检测浏览器是否支持相应的特性。
// check_webp_feature:// 'feature'可以是'lossy', 'lossless', 'alpha' or 'animation'中的一个.// 'callback(feature, result)'会在得到检测结果后被异步调用,所以依赖检测结果的代码应该放在回调函数中。function check_webp_feature(feature, callback) { var kTestImages = { lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA", lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==", alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==", animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA" }; var img = new Image(); img.onload = function () { var result = (img.width > 0) && (img.height > 0); callback(feature, result); }; img.onerror = function () { callback(feature, false); }; img.src = "data:image/webp;base64," + kTestImages[feature];}
参考文章
https://developers.google.com/speed/webp/faq
https://developers.google.com/speed/webp/docs/webp_study
http://isux.tencent.com/introduction-of-webp.html
- WebP简单介绍
- Webp图片技术介绍
- WEBP
- WEBP
- WebP
- WEBP
- WEBP
- Webp
- WEBP
- 网站性能优化— WebP 全方位介绍
- 一个新的图像格式 -- webp介绍
- WebP 原理和 Android 支持现状介绍
- WebP原理和Android支持现状介绍
- Google图片新高科技之WebP介绍
- 一种新的高压缩比图片存储格式WebP介绍
- WebP android
- webp开发
- opencv+webp
- 用canvas画矩形
- Java _ Java 执行Linux 指令
- Linux学习之第八章
- 使用showInputDialog显示输入框
- 三、Spring 容器概述
- WebP简单介绍
- ADV-89-算法提高-输出九九乘法表、ADV-90-算法提高-输出日历
- 蓝桥杯模拟赛2017 风险度量
- HTTPS协议及用Fiddler查看HTTPS流量
- linux之CentOS下文件解压方式
- 梯度下降和随机梯度下降为什么能下降?
- Intellij idea 功能简介(二)进入主界面前的设置
- win10中Django后台admin无法加载CSS等样式
- Docker Tutorial