WebP技术及其应用

2016-11-17  本文已影响156人  Maslino

WebP是什么

WebP是一种适用于Web的图片格式,由Google在2010年发布。

WebP的优势

总体上WebP图片更小,能显著提升图片加载速度,减少流量消耗。与现有图片格式相比,虽然WebP图片大小变小了,但是图片质量凭肉眼难以看出差异。

WebP使用的图像编码技术

WebP的兼容性与可用性

兼容性

从浏览器的市场占有率来看,兼容性达50%,能够覆盖现有一半用户。

至于移动端,安卓4+提供原生支持,其它版本以及iOS平台可以使用官方提供的解析库(安卓iOS)。

可用性

WebP的性能

WebP的编解码速度比PNG和JPEG慢:

解码慢,对页面加载有影响么?实际测试发现,WebP加载更快。

对比测试:

WebP的应用现状

WebP的部署

WebP图片格式转换工具

除了Google提供的命令行工具外,还有腾讯ISUX前端团队开发的智图iSparta等。

客户端检测

检查浏览器是否支持WebP

一种方法是用js尝试解码一小段WebP图片数据。

// check_webp_feature:
// 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.
// 'callback(feature, result)' will be passed back the detection result (in an asynchronous way!)
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];
}

如何兼顾不支持WebP的浏览器

在img元素中同时包含WebP格式和其它格式图片,使用js判断浏览器是否支持WebP,然后选择相应的图片格式。

服务器端检测

主要思想是通过检查请求头中的User-Agent或Accept信息来判断客户端是否支持WebP,可以参考WebP with Accept negotiation.

相关开发库或例子

参考资料

上一篇 下一篇

猜你喜欢

热点阅读