借り初めのひみつきち

仮ブログです。

QOI 画像ビューワーつくった

最近 QOI (Quite OK Image Format) という新しい画像形式が登場しました。

QOI — The Quite OK Image Format

PDF1 ページに収まる単純な仕様でエンコーダーデコーダーもC言語で数百行と単純で高速ですが、PNGよりやや圧縮率が悪い程度というトレードオフがなかなか優秀なフォーマットです。

アルゴリズム上、写真などの自然画よりもイラスト画像に効果があり、デコーダーの軽さも考慮するとアセット画像に向いてそうです。

さて、新しい画像形式が生まれた時に問題となるのが、サポートするソフトが少ない問題です。

QOI 形式の画像は本格的な画像編集はあまり求められておらず、内容の確認とフォーマットの変換ができれば十分だと思います。 公式サイトにはいくつかツールが紹介されていますが、動作環境が微妙だったりビルドがうまく通らなかったりしてぼくの環境では簡単に使えるツールがありませんでした。

幸い Rust のライブラリはすでにいくつか提供されているようなので WebAssembly でラッピングしてウェブアプリにしてみました。

https://nerry.jp/image-viewer/

github.com

構造としては IMG タグで読み込んだ画像を Canvas に描画する簡単なウェブアプリに QOI フォーマットの入出力機能を追加した感じです。 この方法だと PNG の入出力はブラウザに任せればいいので相互変換が簡単に実装できます。

これで QOI 画像の表示や変換が簡単にできるようになりました。

ちなみに myos の最新版でも QOI 形式に対応していて一部の画像リソースは QOI 形式になっています。