libwebpjsによるWebP画像のデコード(Worker版:v0.6.0対応)
written by DEFGHI1977
libwebpjs(v0.6.0)を用いたWEBP画像の(PNG形式への)デコード検証コード. 以前公開したもののアップデート版である. v0.6.0ではアニメーションWebPをサポートしているのだが, API構成がかなり変更されているため, ライブラリを使う側の改訂も必要となっている. (というか, そのままではほぼ使い物にならない)
現在FifeFoxとEdgeにてWebP利用の目処が立たないが, 本サンプルを使えばimg要素へのWEBP画像の表示が可能となる.
- WebP画像のデコードにはlibwebp-0.6.0.min.jsに加えdemux.jsを利用する. 本ページでもWorker内部でこのスクリプトを読み込んでいる.
前バージョンではデコード出来なかったlossy-lossyも正しく動作している.
- 画像の出力には透過BMP及びXNG(アニメーションSVG)を利用した. なおEdgeだと透過BMPが透過しない模様(納得できない)
このままでは動作パフォーマンス上使い物にならないが, 別途PNG/GIFエンコーダーを導入すればもう少し利用価値が出るかもしれない.
- 2017/09/11 公開
- 2017/09/12 Edgeでの一部動作を確認
- 2017/09/12−2 メモリ利用を若干効率化
- 2017/09/13 コードを整理
- 2017/09/13−2 Edgeでは透過BMPの代わりにSVGを出力するように機能を変更
WEBP形式のバリエーション
画像 | RGBチャンネル | アルファチャンネル | Blink | Webkit | WebPJS | libwebp.js |
| 可逆(lossless) | 無し | ○ | ○ | × | ○ |
| 可逆(lossless ) | 可逆(lossless) | ○ | ○ | × | ○ |
| 可逆(lossless) | 非可逆(lossy) | ○ | ○ | × | ○ |
| 非可逆(lossy) | 無し | ○ | ○ | ○ | ○ |
| 非可逆(lossy) | 可逆(lossless) | ○ | ○ | × | ○ |
| 非可逆(lossy) | 非可逆(lossy) | ○ | ○ | × | ○ |
| アニメーション | ○ | × | × | ○ |
| data uri scheme |
| canvas |
webpWorker.0.6.0.js