背景
我们在日常工作和开发过程中,有时会有生成二维码的需求。
一般的生成二维码路径是:
- 打开浏览器
- 通过搜索或书签进入某二维码生成网站(如草料)
- 输入带生成的文本
- 点击生成
这种生成二维码的链路比较繁琐和冗长,本文介绍另一种更高效的方式来完成二维码的生成操作。
效果图
原理
编写二维码生成脚本
import hashlib
import qrcode
import sys
import os
text = sys.argv[1]
md5 = hashlib.md5(text.encode()).hexdigest()
qr_path = os.path.expanduser('~/.qr/%s.jpg' % md5)
qr_dir = os.path.dirname(qr_path)
if not os.path.isdir(qr_dir):
os.makedirs(qr_dir)
if not os.path.exists(qr_path):
qrcode.make(text).save(qr_path)
sys.stdout.write(qr_path)
输入:待生成二维码的文本内容;
输出:生成的二维码图片文件路径;
这里使用了一个叫qrcode
的二维码生成的python库,将生成的二维码保存为本地一张缓存图片。
为了提高相同内容下次的生成效率,这里将内容进行md5处理,将md5值作为缓存图片的文件名。
集成Alfred
- 添加触发关键词
qr
; 将输入文本传入Python脚本;
python main.py "{query}"
- 在脚本输出结果后面追加
Open File
节点,其中关联应用程序选择Mac系统自带的预览
;
最终Workflow效果如下,到此工具已经开发完成。
拓展
基于以上原理,还可以拓展一下应用场景。
比如很多二维码是要基于当前浏览器页面的地址进行生成的,此时可以通过Alfred内置节点获取到当前浏览器标签栏的地址,从而达到不需要手动输入待生成二维码文本的目的,如下: