核心用法
qrcode2 是一款纯本地运行的二维码生成与识别工具,基于 Python qrcode[pil] 和 opencv-python 实现,无需调用外部 HTTP 接口即可完成二维码的编码与解码操作。
编码(encode):将文本、URL 或数据编码为标准 PNG 格式二维码图片,支持自定义版本(1-40)、容错级别(L/M/Q/H)、模块大小、边框宽度及前景/背景色,满足从基础扫码到高容错场景的多样需求。
解码(decode):使用 OpenCV 从本地图片文件中识别并提取二维码内容,返回原始文本及定位点坐标,支持常见二维码格式的自动检测。
显著优点
1. 零网络依赖:完全本地执行,数据不出沙箱,适合隐私敏感场景或离线环境
2. 参数灵活可控:容错级别、颜色、尺寸均可自定义,兼顾可读性与美观度
3. 与云端互补:可与 jisu-qrcode 远程版搭配,本地快速测试/解码,云端生成带 LOGO/模板的专业二维码
4. 输出标准化:统一返回 JSON 结构化数据,便于自动化流程集成
潜在局限
- 生成样式较基础,不支持内置 LOGO、艺术模板或渐变色彩(需配合云端服务)
- 依赖 Python 环境及手动安装
qrcode[pil]、opencv-python,环境初始化成本存在 - OpenCV 解码对图像质量、光照条件有一定要求,极端模糊/扭曲图片可能识别失败
- 无内置图片上传/托管能力,生成后需自行处理图片分发
适合人群
- 需在隔离网络或隐私合规环境下处理二维码的开发者
- 需要批量生成标准二维码并进行本地验证的自动化场景
- 希望将二维码能力嵌入内部工具链,减少外部 API 依赖的技术团队
常规风险
- 依赖管理风险:若环境未预装指定库,脚本会返回
missing_dependency错误,需人工介入修复 - 路径安全风险:输入/输出路径若未做校验,可能存在目录遍历风险(建议沙箱内运行)
- 解码可靠性:复杂背景、低分辨率或损坏的二维码可能导致
decode_failed,需配合错误处理逻辑 - 无加密机制:二维码内容明文编码,敏感信息需额外加密或选用高容错级别后配合访问控制