Show HN: 任意のデータをWOFF2カラーフォントにエンコードし、canvas経由でデコード
brpackは、任意のバイナリデータをWOFF2カラーフォント(COLR/CPALテーブル)にエンコードするツールです。エンコードされたフォントはブラウザで描画でき、canvasのgetImageDataを使ってデータをデコード・復元します。標準的な画像フォーマットでは表現が難しい「PNGファイルをフォントとして埋め込む」といった用途にも応用可能です。
背景メモ
- WOFF2はWeb用のフォント圧縮形式で、通常は文字の形(グリフ)を記録する。brpackはこのWOFF2を「データ運びの入れ物」として使い、任意のバイナリデータをフォントのグリフ情報として埋め込み、ブラウザのCanvas APIで読み出して復号するツール。
- 仕組み: 入力データをWOFF2のglyph(輪郭線や制御点)としてエンコード → ブラウザでそのフォントをレンダリング → Canvas上のピクセルパターンを再度データにデコードする。WOFF2は圧縮率が高く、データ転送量を抑えられる。
- 典型的なファイル埋め込み(exif)とは異なり、WOFF2は画像やHTMLと独立したリソースとして扱えるため、CDN越えやキャッシュ戦略に乗せやすいという発想。
- 実用性よりも「フォーマットの仕様を別の目的に転用するハッキング精神」が興味の中心。データ容量はWOFF2自体の制限(最大グリフ数など)に依存する。