讓你的網頁支持WebP格式

WebP格式

  WebP是Google推出的一種圖片格式,它基於VP8編碼,可對圖像大幅壓縮。與JPEG相同,WebP也是一種有損壓縮,但在畫質相同的情況下,WebP格式比JPEG圖像小40%。 Wiki  百度百科
   它是一個開源項目,我們可以在此獲取其中源碼,以及相關工具。

瀏覽器支持

  顯然,Google瀏覽器Chrome首先引入,此外Opera 11.10也增加對WebP的支持。
  如果你能看見下面的圖片,說明你的瀏覽器內置WebP。

  [img=http://www.etherdream.com/WebP/Test.webp][/img]

支持更多的瀏覽器!

  WebP的優勢顯而易見,但缺少主流瀏覽器的支持,使得它目前仍然無法推廣。但這並不妨礙我們嘗試!
  大多數瀏覽器自身無法解碼WebP格式,但可以交給我們來實現!雖然網頁腳本無法勝任,但藉助Flash技術,我們完全可以實現高效快速的解碼。
  並且,幾乎所有的瀏覽器都支持Flash...

WebP插件

  當前版本共3個文件:WebP.jsWebP.swfWebP.htc。在此下載打包文件。

  在<body></body>之間插入如下代碼,即可使用WebP了。

  
JavaScript code
?
1
<script type="text/javascript" src="WebP.js"></script>

  插件將會捕捉頁面中使用WebP格式的img元素,並用Flash進行替換。圖像的解碼及顯示都在Flash中完成,因此目前版本對CSS設置的背景圖片無效
  當然,作爲JPEG格式的替換,只有對較大的圖像使用纔有意義,否則過多的解碼將消耗大量的資源。

  Demo1:最簡單的樣列

XML/HTML code
?
1
<img src="Test.webp" />

  在新窗口中預覽


  Demo2:保留原始屬性

XML/HTML code
?
1
<img src="Test.webp" width="250" height="150" title="這是一副WebP圖片!" style="border:red 2px solid" />

  在新窗口中預覽


  Demo3:保留原始樣式

XML/HTML code
<style>
    img {
        filter: alpha(opacity=50);
        opacity: 0.5;
    }

    .t {
        border: blue dotted 2px;
    }
</style>
<img class="t" src="Test.webp" />

  在新窗口中預覽


  Demo4:支持動態載入

XML/HTML code
<div id="con"></div>
<script type="text/javascript">
    var d = document.getElementById("con");
    function add()
    {
        d.innerHTML = "<img class='t' src='Test.webp' title='Hello~' />";
    }
    function del()
    {
        d.innerHTML = "";
    }
</script>
<button οnclick="add()">載入</button>
<button οnclick="del()">移除</button>

  在新窗口中預覽

探索中...
  當前版本只能將IMG元素一次性轉換成Flash元素,而不支持後期的腳本操作。對IMG對象的修改不會被鏡像到Flash上。
  因爲Safari瀏覽器無法觸發屬性變化事件,所以屬性同步比較困難。
  此外,Data URI理論上是最完美的解決方法。但經測試,超長的參數會消耗大量CPU和內存。
  當然,現在測試版本中還存在大量問題,將在以後逐漸完善。
  如果有更好的創意,歡迎大家來探討交流!mailto:[email protected]


  因爲這裏貼不上代碼效果,大家可以訪問我的專題頁面:

  http://www.etherdream.com/WebP/

原文地址:http://bbs.csdn.NET/topics/370172422


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章