webp是一种同时提供了有损压缩与无损压缩的图片档案格式 ,衍生自影像编码格式VP8,是由Google在购买On2 Technologies后发展出来,以BSD授权条款释出。根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,WebP 还是可以减少 28% 的文件大小。
WebP最初在2010年释出,目标是减少档案大小,但达到和JPEG格式相同的图片品质,希望能够减少图片档在网路上的传送时间。
WebP使用VP8作为压缩演算法
同质量的前提下,WebP体积大约只有JPEG的1/3,对于采用大量图片的网页,WebP格式可以节省大量带宽,大幅提升网页加载速度。例如,YouTube的视频略缩图采用WebP格式后,网页加载速度提升了10%;谷歌的Chrome 网上应用商店采用WebP格式图片后,每天可以节省几TB的带宽,页面平均加载时间大约减少1/3;Google+移动应用采用WebP图片格式后,每天节省了50TB数据存储空间。
对于图片占主要流量的网站,使用webp格式图片能很大程度减小图片体积,在我之前的一个项目里,首页是四张大图的轮播,图片优化很成问题,在使用webp格式图片后,图片体积减小了70%以上,目测图片质量没有影响
方法一:
function checkWebp() {
try{
return (document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0);
}catch(err) {
return false;
}
}
console.log(checkWebp()); // true or false
方法二:
var d = document;
var check = function() {
var supportWebp;
try {
var ele = d.createElement('object');
ele.type = 'image/webp';
ele.innerhtml = '!';
d.body.appendChild(ele);
//奇妙所在,如果浏览器支持webp,那么这个object是不可见的(offsetWidth为0),
//否则就会显示出来,有可视宽度.
supportWebp = !ele.offsetWidth;
d.body.removeChild(ele);
}catch (err) {
supportWebp = false;
}
return supportWebp;
}
此方法是在看某个项目的源码时看到的
1.若使用场景是浏览器,可以:
JavaScript 能力检测,对支持 WebP 的用户输出 WebP 图片
使用 WebP 支持插件:WebPJS
2.若使用场景是 App,可以:
Android 4.0 以下 WebP 解析库(链接)
iOS WebP 解析库(链接)
因为不是所有浏览器都支持WebP格式,我们就有两种思路:一个是只在支持WebP格式的浏览器中使用WebP格式;一个是让不支持WebP格式的浏览器可以支持WebP。
我们都知道,WebP 是 Google 推出的 WebP 图片格式,它是一种支持有损压缩和无损压缩的图片文件格式,根据Google测试,相同的图片,WebP 格式的图片均能比 PNG,JPG 格式的图片节约不少体积,但是其兼容性不是很好,如下:
webp 是目前 Web 比较流行的解决方案,相对于 Jpeg/png, 基于 VP8 的压缩,有着非常不错的压缩率。比较基础的方法,还是检测 UA 白名单来说,毕竟这些版本都是很早就支持。
WebP是Google在2010年提出的一种新的图像格式。对于包含大量图片的网站,大多会使用WebP格式的图片,这样不仅可以减少流量带宽,还可以减少用户访问的加载时间,提高用户体验
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!