二维码学习笔记(七) | 特殊样式
唠唠闲话
二维码样式有非常大的发挥空间,本文根据样式的生成方式,将其分为三类:
- 简单的图片操作
- 矢量图操作
- 二维码像素绘图
尽管不一定能覆盖到所有创意,但列举的这三类是个人觉得可以做到,但限于精力短期不一定能完成的目标。所以如果你也觉得这些设计很有意思,欢迎加入 QRCoders.jl 的开发中来。如果有问题或想法,欢迎通过 issue,中英文论坛,slack 等方式进行交流。
二维码参考样式:
本文着重点介绍图像二维码的编写原理。
简单的图片操作
这部分主要涉及图片的替换,填色和叠加等,举几个例子。
-
在二维码中间填充图片
- 策略:切片赋值
- 提升:设置中心图片大小,避免破坏二维码
-
彩色绘图
- 彩色像素:用 RGB 值代替黑白像素
- 渐变绘图:先画彩色的背景图,然后将二维码的黑块当成透明块,填充上去
-
散点图
- 策略1:UnicodePlots.jl 中的散点图工具
- 策略2:张量积
kron
执行的内容类似于点替换为矩阵,设置目标矩阵即可
矢量图操作
以吃豆人为例
绘制过程:
- 绘制通常的二维码
- 随机取部分连续的黑块连接起来,作为墙壁
- 随机取部分 2x2 的黑块替换为吃豆人
- 将其他黑块替换为豆子
Plot process
- Draw the usual QR code
- Randomly select some continuous black pixels to connect them as walls
- Randomly select some 2x2 black pixels to replace with Pacman
- Replace other black pixels with beans
二维码像素绘图
文章采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自 学习乐园!
评论