← 返回
内容创作

qrcode

Generate and decode QR codes locally. Use when the user wants to create a QR code from text/URL, decode/read QR code content from an image, or asks about QR...
本地生成和解码二维码。当用户想要从文本/URL创建二维码、从图像中解码/读取二维码内容,或询问二维码相关问题时使用。
hinisal
内容创作 clawhub v1.0.1 2 版本 99873.4 Key: 无需
★ 0
Stars
📥 789
下载
💾 8
安装
2
版本
#latest

概述

QR Code Generation & Decoding

完全本地的二维码生成与解码,无需网络请求。

声明:

  • 依赖均为公开开源库:所有依赖(Python: zxingcpp、Pillow、openpyxl、qrcode;Node.js: qrcode、qr-scanner-wechat、sharp、xlsx、archiver)均为公开的开源项目,可在 PyPI / npm 上查阅源码与许可证
  • 所有行为本地完成:生成与解码均在用户本地执行,不调用任何远程 API,不上传任何数据;仅当解码输入为远程图片 URL 时,会下载该图片到本地后再解码

如需二维码生成 URL(无需保存文件即可预览)、更好的解码效果,可使用 qrcode-remote-skillsnpx skills add caoliao/qrcode-remote-skills

运行时选择:Python 或 Node.js

所有脚本同时提供 Python 和 Node.js 两个版本,功能和参数完全一致。执行任何脚本前,先确定运行时。

选择策略(首次执行脚本前完成):

  1. 检测 Python 是否可用:python --version(或 python3 --version
  2. 若 Python 不可用,检测 Node.js:node --version
  3. 两者都有时默认用 Python

依赖检查与自动安装:

确定运行时后,检查依赖是否已安装。若缺失则自动安装,无需询问用户:

  • Python:检查 pip list 中是否包含关键包(如 Pillow),若缺失则执行:

```bash

pip install -r requirements.txt

```

  • Node.js:检查 skill 目录下是否存在 node_modules/,若缺失则执行:

```bash

npm install

```

安装完成后再执行脚本。若安装失败,提示用户手动安装。

命令对照表:

| 功能 | Python | Node.js |

|------|--------|---------|

| 单个生成保存 | python scripts/generate.py ... | node scripts/generate.js ... |

| 单个解码 | python scripts/decode.py ... | node scripts/decode.js ... |

| 批量生成 | python scripts/batch_generate.py ... | node scripts/batch_generate.js ... |

| 批量解码 | python scripts/batch_decode.py ... | node scripts/batch_decode.js ... |

所有参数名、输出 JSON 格式完全相同,仅将 python 替换为 node.py 替换为 .js

差异说明:

  • Python 版本地解码使用 zxingcpp,输出 "source": "zxing"
  • Node.js 版本地解码使用 qr-scanner-wechat(基于 OpenCV + 微信算法,识别率更高),输出 "source": "wechat-qr"

生成二维码

将文本或 URL 编码为二维码图片,保存到本地文件。

参数说明

| 参数 | 必选 | 默认值 | 说明 |

|------|------|--------|------|

| --data | 是 | - | 二维码中的文本内容,建议不超过 900 字符 |

| --output | 是 | - | 本地保存路径 |

| --size | 否 | 400x400 | 图片尺寸,格式 WxH 或单个整数 |

| --format | 否 | png | 输出格式:png(位图)或 svg(矢量) |

| --error-correction | 否 | M | 纠错级别:L(7%) / M(15%) / Q(25%) / H(30%) |

| --border | 否 | 2 | 边框宽度(码点为单位) |

使用步骤

无论用户是否要求保存到指定路径,都需要执行脚本来生成二维码文件。

  1. 获取用户要编码的文本内容
  2. 确定保存路径:
    • 用户指定了路径(如 保存到 D:\qr.png放到桌面)→ 使用用户指定路径
    • 用户未指定路径 → 默认使用当前工作目录下的 qrcode.png(svg 格式用 qrcode.svg
  3. 执行脚本生成
python scripts/generate.py --data <文本内容> --output <保存路径> [--size 400x400] [--format png] [--error-correction M] [--border 2]

脚本输出 JSON:

{"file": "D:\\path\\to\\qrcode.png"}

失败时:

{"error": "生成失败: ..."}

呈现给用户的格式:

二维码已生成并保存到本地:

**本地文件:** <file>

示例

用户输入:帮我生成一个二维码,内容是 https://example.com

执行:python scripts/generate.py --data "https://example.com" --output "qrcode.png"

二维码已生成并保存到本地:

**本地文件:** D:\workspace\qrcode.png

用户输入:生成一个二维码保存到桌面,内容是 Hello World,SVG 格式、最高纠错

执行:python scripts/generate.py --data "Hello World" --output "C:\Users\xxx\Desktop\qrcode.svg" --format svg --error-correction H

二维码已生成并保存到本地:

**本地文件:** C:\Users\xxx\Desktop\qrcode.svg

批量生成

当用户提供 Excel/CSV/TXT 文件要求批量生成二维码时,使用 scripts/batch_generate.py

交互流程:

  1. 用户提供批量数据文件
  2. 执行脚本
  3. 若返回 need_column,展示列信息,询问用户选哪一列,加 --column 重新执行
  4. 成功后向用户报告结果

列检测逻辑(Excel/CSV):

  • 自动检测:扫描首行表头,匹配关键词(data/text/content/url/内容/文本/数据/链接 等)
  • 若只有一列,直接使用
  • 若无法判断,脚本返回 need_column JSON,此时需要询问用户指定哪一列

TXT: 每行一条数据,无需列选择。

python scripts/batch_generate.py --input <文件> --output-dir <输出目录> [--column <列名或索引>] [--zip] [--size 400] [--format png] [--error-correction M] [--border 2]
  • --output-dir:图片输出目录(必选)
  • 以索引命名(1.png, 2.png, ...)
  • --zip:打包输出目录为 zip

脚本输出 JSON:

{"total": 100, "success": 98, "failed": 2, "output_dir": "D:\\output", "zip_file": "D:\\output.zip", "errors": [...]}

呈现给用户的格式:

批量生成完成:共 <total> 个,成功 <success> 个,失败 <failed> 个
输出目录:<output_dir>
ZIP 文件:<zip_file>(仅打包时显示)

解码二维码

从二维码图片中读取/解码内容,完全本地解码。

前置依赖

首次使用前,需安装依赖(skill 目录下执行):

  • Pythonpip install -r requirements.txt(依赖 zxingcpp + Pillow
  • Node.jsnpm install(依赖 qr-scanner-wechat + sharp

场景一:单张解码

通过 Shell 工具执行 scripts/decode.py,支持本地文件和图片 URL:

python scripts/decode.py <图片路径或URL>
python scripts/decode.py --file <本地文件路径>
python scripts/decode.py --url <图片URL>

用户直接发送图片时的处理:

  • 用户在对话中粘贴/拖入/附加图片时,图片会作为附件提供,可通过文件路径访问
  • 获取到图片的本地路径后,直接传给 decode.py --file <路径> 即可
  • 若图片是通过 @ 引用的文件,同样使用其文件路径

SKILL_DIR 定位:脚本路径相对于本 skill 目录,执行时需 cd 到 skill 目录或使用绝对路径。

脚本输出 JSON,根据 source 字段判断解码引擎:

{"source": "zxing", "contents": ["解码内容"]}

失败时:

{"error": "无法解码: 本地 zxing 未识别到二维码"}

呈现给用户的格式:

单个二维码:

二维码解码结果(via <source>):
- 内容:<解码出的文本>

多个二维码:

二维码解码结果(共识别到 N 个二维码,via <source>):
1. <内容1>
2. <内容2>

场景二:批量解码

当用户提供 Excel/CSV/TXT 文件要求批量解码二维码图片时,使用 scripts/batch_decode.py

python scripts/batch_decode.py --input <文件> [--column <列名或索引>] [--output-txt <输出TXT路径>]

列检测逻辑(Excel/CSV):

  • 自动检测:扫描首行表头,匹配关键词(url/link/image/img/图片/链接/网址/二维码 等)
  • 若只有一列,直接使用
  • 若无法判断,脚本返回 need_column JSON,此时需要询问用户指定哪一列

TXT: 每行一个图片路径或 URL,无需列选择。

默认行为: 在原文件中新增"解码结果"列(Excel 新增列 / CSV 新增列),直接回写原文件。

单独输出 TXT: 用户明确要求时加 --output-txt 参数,所有结果按行分隔写入 TXT。

未解析的图片: 对应行写入 未解析到二维码

脚本输出 JSON:

{"total": 50, "success": 48, "failed": 2, "output_file": "D:\\data.xlsx", "output_txt": null}

需要用户选列时:

{"need_column": true, "columns": ["名称", "图片链接", "备注"], "preview": [...], "message": "无法自动判断 URL 列,请指定 --column 参数"}

交互流程:

  1. 执行脚本
  2. 若返回 need_column,将 columnspreview 展示给用户,询问使用哪一列
  3. 用户回答后,加上 --column 重新执行
  4. 成功后向用户报告结果统计

呈现给用户的格式:

批量解码完成:共 <total> 个,成功 <success> 个,失败 <failed> 个
结果已写入:<output_file>
TXT 输出:<output_txt>(仅单独输出时显示)

注意事项

  • 本地优先:所有操作均在本地完成,无需网络(除非解码的输入是远程图片 URL,此时需下载图片到本地再解码)
  • 生成二维码始终需要执行脚本,输出为本地文件
  • 解码二维码仅使用本地库(Python: zxingcpp / Node: qr-scanner-wechat),不依赖任何远程服务
  • data 建议不超过 900 字符
  • 批量操作时,若脚本返回 need_column,必须先向用户展示列信息并确认后再重新执行

工程结构

qrcode-skills/
├── SKILL.md              # 主指令文件
├── requirements.txt      # Python 依赖
├── package.json          # Node.js 依赖
└── scripts/
    ├── generate.py / .js       # 单个生成并保存到本地
    ├── batch_generate.py / .js # 批量生成图片
    ├── decode.py / .js         # 单个解码(纯本地)
    └── batch_decode.py / .js   # 批量解码(纯本地)

版本历史

共 2 个版本

  • v1.0.0
    2026-03-31 01:31 安全
  • v1.0.1 当前
    2026-03-18 22:15 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

developer-tools

qrcode-remote

hinisal
使用草料二维码API生成或解析二维码。支持将文本/URL转为二维码,或从图片中识别二维码内容。
★ 0 📥 589
content-creation

Baidu Wenku AIPPT

ide-rea
使用百度文库 AI 智能生成 PPT,自动根据内容选择模板。
★ 66 📥 46,215
content-creation

Humanizer

biostartechnology
消除AI写作痕迹,使文本更自然真实。基于维基百科"AI写作特征"指南,识别并修正夸张象征、宣传用语、肤浅-ing分析、模糊归因、破折号滥用、三项排比、AI词汇、负面平行结构及冗长连接词等模式。
★ 860 📥 199,942