webp介紹與使用

    webp是谷歌10年發佈的一種新的圖片格式,支持有損壓縮或無損壓縮。據官方稱無損壓縮的webp在體積上要比png小26%,而有損壓縮要比同質量jpg小25%~34%。經本人測試,由騰訊智圖處理的不一樣圖片轉換webp壓縮率不太同樣,在24%~83%之間都有。這樣大的壓縮率對於咱們Web前端開發工程師誘惑力實在太大了。由於互聯網很大一部分流量都來自圖片,圖片體積變小能夠幫助咱們讓網頁加載地更快,這對提高用戶體驗是有幫助的。
    webp有損壓縮使用了一種高級預測編碼方法對圖片進行編碼,這種方法使用臨近像素塊中的值來預測當前塊中的圖像值,而後只須要對這種差別進行編碼。
    webp無損壓縮使用已經可見的圖像碎片來精確地重建一個個新的像素。這種壓縮模式被稱爲「VP8L」,與LZ77壓縮算法有一些共同特徵。
    那麼,如今是否有產品使用webp呢?答案是確定的,國外如Youtube、Gmail、Google Play、Chrome網上商店,國內如騰訊、淘寶、美團等都有webp的應用。科技博客 Gig‍‍‍aOM 曾報道:YouTube 的視頻略縮圖採用 WebP 格式後,網頁加載速度提高了 10%;谷歌的 Chrome 網上應用商店採用 WebP 格式圖片後,天天能夠節省幾 TB 的帶寬,頁面平均加載時間大約減小 1/3;Google+ 移動應用採用 WebP 圖片格式後,天天節省了 50TB 數據存儲空間。
    那咱們開始使用webp吧!遺憾的是,除了chrome和opera,其餘瀏覽器都沒有對webp原生支持。因此就有了如下不一樣場景下的技術解決方案,在此共享給你們學習參考:
    一、瀏覽器
        方案一:
        JavaScript能力檢測,僅對支持webp的狀況輸出webp
        
var testWebp = function(callback){
   var image = new Image();
   image.onerror = function(){
    callback && callback(false);
   }
   image.onload = function(){
    callback && callback(image.width == 1);
   }
   image.src = "data:image/webp;base64,UklGRiwAAABXRUJQVlA4ICAAAAAUAgCdASoBAAEAL/3+/3+CAB/AAAFzrNsAAP5QAAAAAA==";
  };
 
  testWebp(function(flag){
   if(flag){
    alert('恭喜,瀏覽器支持webp');
   }else{
    alert('抱歉,瀏覽器不支持webp');
   }
  });

 

        方案二:
        使用WebP插件(連接:http://pan.baidu.com/s/1i3GkVFf
        引入js文件,插件會捕捉使用webp圖片的img元素,而後使用flash替換,值得注意的是圖像的解碼和顯示都在插件中進行,故而對css背景圖片無效
 
二、app
    1)Android4.0以上原生支持,4.0如下使用解析庫(連接https://github.com/alexey-pelykh/webp-android-backport
 
另外,騰訊前端團隊爲咱們提供了2款webp轉換工具,有須要的同窗能夠一試:
    智圖(http://zhitu.isux.us/
    iSparta(http://isparta.github.io/
相關文章
相關標籤/搜索