2025-12-20
画像形式でPNGやJPEGが入り混じるのが地味に面倒なので、WebPにしてみることを検討します。

自分のブログを検索してみると2011年時点では透過対応がなくPNGの置き換えができませんでしたが、その後対応していました。(参考、WebPへの要望、3つ(透過対応をぜひ!)


「code4fukui/WebP」

オープンソースのJavaScript/WebAssmeblyによる画像変換プロジェクト「squoosh」内の「codecs/webp」を、bin2js を使って、ブラウザからもDenoからも使える、ESモジュール化としてまとめました。

WebAssmembly(wasm)は、バイナリファイルを読み込んで生成する必要がありますが、ファイルかどうかや、取得元のディレクトリの扱いが面倒です。バイナリをJavaScriptのデータとして bin2js 変換すれば、importして使えて便利!

WebP.js として、PNGやJPEGと同様、簡単に扱えるようになりました。

import { WebP } from "https://code4fukui.github.io/WebP/WebP.js"; const webpbin = await Deno.readFile('./example.webp'); const image = WebP.decode(webpbin); console.log(image); const webpbin2 = WebP.encode(image); console.log(webpbin2.length);

3つ目の要望、もうちょっといい名前は引き続き叶えてほしいところ。
また、macのアプリ、プレビューでの書き出しでWebP対応していないのも痛い。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS