Jim的TrueType二维码字体
摘要
Jim Paris发布了一款实验性TrueType OpenType字体,该字体使用OpenType塑形和Reed-Solomon编码,将括号分隔的文本渲染为二维码,同时保持周围文本可读。
查看缓存全文
缓存时间: 2026/07/07 17:13
jimparis/qr-font
来源:https://github.com/jimparis/qr-font
Jim 的 TrueType QR 码字体
在线演示:https://qr.jim.sh/
下载:
- qrfont-1L.ttf (https://github.com/jimparis/qr-font/releases/latest/download/qrfont-1L.ttf)(21x21 模块,最多 17 个字符)
- qrfont-2L.ttf (https://github.com/jimparis/qr-font/releases/latest/download/qrfont-2L.ttf)(25x25 模块,最多 32 个字符)
- qrfont-3L.ttf (https://github.com/jimparis/qr-font/releases/latest/download/qrfont-3L.ttf)(29x29 模块,最多 53 个字符)
本仓库生成一种实验性的 OpenType 字体,它可以将方括号括起来的文本转换为 QR 码符号,同时保持周围的文本可读。
text abc[hello]ghi
所有字体均使用:
- 字节模式
- 可打印 ASCII 输入
- 固定掩码图案 0
[和]作为分隔符
这些字体是自动生成的,而非手工制作。构建脚本会生成字形轮廓和 GSUB 功能逻辑,然后将其编译为 dist/qrfont-*.ttf。默认构建会编译分隔符解析器、字节扩展、Reed-Solomon 校验电路、QR 模块放置和固定掩码渲染。
可打印 ASCII 字形从 Liberation Sans Regular 复制,并按比例缩放到 QR 字体的 em 方块中,因此括号外的 QR 块文本在相同字体中呈现为普通文本。Liberation 是源字体许可证下的保留字体名称,因此生成的字体族命名为 QR Font 1-L、QR Font 2-L 和 QR Font 3-L。
构建
sh make
该项目使用 uv 进行 Python 依赖管理。你也可以直接运行生成器:
sh uv run tools/build_font.py
默认情况下,生成器从以下路径读取 Liberation Sans Regular:
text /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
使用其他兼容的 TrueType 源字体:
sh uv run tools/build_font.py --base-font /path/to/BaseFont-Regular.ttf
尝试完整的生成式 Reed-Solomon 电路:
sh make full-parity
这也是默认的 make 路径。它会生成数千个上下文查找,通常比纯布局构建耗时明显更长。
如需更快的纯布局构建(使用占位零校验):
sh make fast-placeholder
检查形状化的字形流:
sh uv run tools/shape_debug.py '[a]' '[b]'
输出:
dist/qrfont-*.ttf(1-L、2-L 和 3-L 字体文件)dist/index.html(交互式网页演示)build/qrfont-*.fea(生成的 OpenType 功能文件)
在浏览器中打开 dist/index.html,输入带方括号的文本,例如 [hello]。混合文本如 abc[def]ghi 应显示为普通文本,然后显示 def 的 QR 码,再继续显示普通文本。
许可证
生成的字体是 Liberation Sans Regular 的修改版本,并遵循 SIL Open Font License 1.1 版许可。请参阅 LICENSE-OFL.txt 和 NOTICE.md。
注意事项
这是一个概念验证字体。它依赖于 OpenType 整形,因此需要一个对字体应用 GSUB 功能的环境。QR 块内的输入仅限于可打印 ASCII 字符,根据所选字体版本,最多支持 17、32 或 53 个字符。
相似文章
Show HN:TrueType 字体中的二维码渲染器
一款 TrueType 字体,利用 OpenType 规则从括号内的文本直接内联渲染二维码,无需单独生成图片。
二维码生成器
一款可自定义样式的二维码生成工具,借助Claude构建。支持网址、文本和WiFi网络码。
抖动二维码
本文介绍了一个抖动二维码生成器,它允许你在保持二维码可扫描的同时嵌入照片,并解释了相应的底层技术,如功能图案、拜耳抖动和弗洛伊德-斯坦伯格误差扩散。
制作二维码:深入探索二维码艺术 (2024)
本文探讨了创建美观且可扫描的二维码的艺术与技术,涵盖了错误纠正、AI生成和自定义渲染工具等方法,同时强调美学与功能性之间的平衡。
@Manixh02:发现一种有趣的方式生成看起来不像二维码的二维码。 - 输入一个网址,它会从代码中生长出一棵3D树……
一个有趣的基于网页的工具,可以生成以3D树形式呈现的二维码,带有季节性变化,完全在浏览器中运行,无需上传任何数据。