概要
QR Font は、角括弧で囲んだテキストを QRコード シンボルに変換する OpenTypeフォント。 通常テキストは Liberation Sans Regular の書体で表示。 3種類のフォントサイズにより、 最大53文字 までQR化可能。 Pythonスクリプト で自動生成、ビルドやデモページも提供。 SIL Open Font License 1.1 に基づくライセンス。
QR Font:角括弧付きテキストをQRコード化する実験的フォント
- https://qr.jim.sh/ にてライブデモ公開
- qrfont-1L.ttf (21×21モジュール、最大17文字対応)
- qrfont-2L.ttf (25×25モジュール、最大32文字対応)
- qrfont-3L.ttf (29×29モジュール、最大53文字対応)
仕様・特徴
- 角括弧 [ と ] で囲んだ部分だけQRコード化
- 例:abc[hello]ghi → abc(通常テキスト)+ QRコード(hello)+ ghi(通常テキスト)
- Byteモード、 印刷可能ASCII のみ入力対応
- 固定マスクパターン0 を使用
- OpenType GSUB 機能による字形変換とQR生成
- フォント外のテキストは Liberation Sans Regular 由来で自然な表示
- フォント名は QR Font 1-L/2-L/3-L (Liberation名称は未使用)
ビルド・生成方法
- Python依存管理 にuvを使用
- 通常ビルド:
- make
- uv run tools/build_font.py
- ベースフォント変更:
- uv run tools/build_font.py --base-font /path/to/BaseFont-Regular.ttf
- Reed-Solomon回路 完全生成:
- make full-parity(デフォルト)
- 高速ビルド (ゼロパリティのプレースホルダ):
- make fast-placeholder
- 字形ストリームのデバッグ :
- uv run tools/shape_debug.py '[a]' '[b]'
出力物と利用方法
- dist/qrfont-*.ttf (1-L, 2-L, 3-Lのフォントファイル)
- dist/index.html (インタラクティブWebデモ)
- build/qrfont-*.fea (OpenTypeフィーチャーファイル)
- dist/index.html をブラウザで開き、[hello]のような角括弧テキストを入力
- 英数字混在例 :abc[def]ghi → 通常テキスト+QRコード+通常テキスト
ライセンス
- SIL Open Font License 1.1 準拠
- 詳細はLICENSE-OFL.txtおよびNOTICE.md参照
注意事項・制限
- OpenType shaping 必須環境(GSUB機能を適用するレンダラーが必要)
- QRブロック内は 印刷可能ASCII かつ 各フォント上限文字数 まで
- 実験的プロトタイプ としての提供
추신: https://qr.jim.sh/