手绘 QR码
Source: Hacker News
手绘 QR 码
我非常喜欢 QR 码。最近我在明尼阿波利斯一家新开的本地文具店买了一套类似便利贴的纸垫。纸张上有 10×10 和 2×10 的网格。

生成 QR 码
最小的 QR 码(微型 QR 码除外)是 版本 1,使用 21×21 像素矩阵。为了把它放到网格上,我把方格对半划分并利用了一些边距。
版本 1 的 QR 码在最低数据质量设置下可以容纳最长 17 字节的 URL。可惜 https://sethmlarson.dev 长达 23 字节,所以我改用了 sethmlarson.dev。这仍然会让大多数 QR 码扫描器“搜索”该词,从而打开我的网站。
值得注意的是,一位可爱的读者在发布后不久提醒我,通过使用全大写字母而不是小写,我可以在版本 1 QR 码中包含完整的域名。今天我学到,QR 码的“字母数字”字符集实际上包含了 URL 所需的符号,如
:和/。
我使用 Python 包索引上的qrcode 包创建了参考示例。别忘了在 echo 时加上 -n 选项,以避免末尾换行。
$ echo -n "HTTPS://SETHMLARSON.DEV" | qr --error-correction=L
绘制码
我先画出角落的方块(即“定位图案”),然后开始填充其余像素。等我在左上和左下定位之间加入了“时序线”,扫描器就开始识别该图案。

继续绘制顶部时序线和数据后,扫描器能够将整个方块识别为 QR 码。如果仔细观察,你会发现我在数据中甚至出现了一个小错误,但即使在最低纠错级别下也不影响识别。

扫描
最终,QR 码完成了!扫描过程有点挑剔,因为纸张会从平面上卷起。只有把纸平放时才能成功扫描,但把 QR 码挂在显示器上效果极佳,甚至在一定距离之外也能顺利读取。

灵感
希望这能激发你在格子纸上手绘一些东西的兴趣 🖤🤍。如果你想寻找更多基于网格的灵感,可以查看 Alexander Miller 的网页艺术作品 GRID WORLD。