核心用法
qrcode2 是一款纯本地运行的二维码处理工具,基于 Python 的 qrcode[pil] 和 opencv-python 库实现,提供 encode(生成)与 decode(识别)两大核心功能。生成模式支持文本/URL 转 PNG 图片,可自定义版本、容错级别、模块大小、边框宽度及前后景色;识别模式支持从本地图片文件中提取二维码内容并返回角点坐标。命令行接口设计简洁,通过 JSON 参数传递配置,输出结构化结果便于自动化集成。
显著优点
1. 完全离线运行:不依赖任何外部 HTTP 接口,杜绝网络传输中的数据泄露风险,适合处理敏感信息
2. 轻量可控:仅两个 Python 依赖,部署简单,资源占用低
3. 灵活可定制:支持 4 级容错(L/M/Q/H)、自定义配色与尺寸,满足从简单文本到复杂营销场景的多样化需求
4. 双向能力:生成与识别一体化,无需切换工具即可完成二维码全生命周期管理
5. 沙箱友好:与 OpenClaw/ClawHub 生态深度整合,可与远程版 jisu-qrcode 搭配形成「本地测试+云端美化」的混合工作流
潜在缺点与局限性
- 功能边界:不支持直接生成带 LOGO、艺术模板或渐变色二维码,需借助远程服务实现高级视觉定制
- 依赖管理:不提供
requirements.txt,需手动安装依赖,环境一致性依赖用户操作 - 格式支持:仅输出 PNG 格式,不支持 SVG、PDF 等矢量格式
- 识别能力:基于 OpenCV 的识别算法对模糊、遮挡、变形二维码的容错率有限,极端场景可能解码失败
- 无内置持久化:生成的图片路径需自行管理,无自动清理或版本控制机制
适合人群
- 隐私敏感型开发者:需要本地处理二维码内容,拒绝数据上云
- 自动化测试工程师:在 CI/CD 流程中快速生成测试用二维码
- 营销技术从业者:结合
jisu-qrcode实现「本地生成-云端美化-本地验证」的闭环 - 离线环境用户:内网、隔离网络或高安全等级场景下的二维码需求
常规风险
- 依赖安全风险:
opencv-python与qrcode[pil]均为社区维护包,需关注 CVE 公告及时升级 - 路径遍历风险:若将用户输入直接拼接至
out或path参数,可能导致文件写入/读取越权,建议对路径进行白名单校验 - 资源耗尽风险:生成超大尺寸二维码(如 box_size=1000)可能消耗大量内存,建议设置合理上限
- 编码内容风险:二维码可编码任意文本,解码后若直接执行或渲染,需防范 XSS、命令注入等二次攻击