Files
QRGen/docs/CLI_USAGE.md
T
Serendipity 9a204d0312 docs: 新增 CLI 使用手册 docs/CLI_USAGE.md
- 完整覆盖 7 种编码模式(text/url/wifi/vcard/email/phone/sms)
- 批量生成(JSON/CSV)+ 解码 + 所有参数说明
- 格式对比表 + 纠错级别指南 + 常见问题
- README 社区区新增手册链接
2026-06-20 17:29:46 +08:00

8.7 KiB
Raw Blame History

QRGen CLI 使用手册

qrgen 是 QRGen 的命令行工具,支持 QR 码的编码(文本 → QR 图)和解码(QR 图 → 文本),输出 PNG/BMP/JPEG/WebP/SVG/终端 ASCII 六种格式。

快速开始

# 终端预览 QR 码
qrgen "Hello World"

# 生成 PNG
qrgen "https://example.com" -o qr.png

# 生成 SVG
qrgen "重要数据" -o qr.svg -l H

# 解码 QR 图片
qrgen --decode qr.png

基础编码

语法

qrgen [内容] [选项]

选项

选项 说明 默认值
-o, --output <文件> 输出文件路径(.png/.bmp/.jpg/.webp/.svg 终端 ASCII 输出
-l, --level <级别> 纠错级别:L(7%) M(15%) Q(25%) H(30%) M
-v, --version <1-40> 手动指定 QR 版本 自动选择
-s, --size <像素> 每个模块的像素大小(图像输出) 4
-m, --margin <模块> 白边宽度(模块数) 4
-f, --format <格式> 图像输出格式:png bmp jpeg webp 从文件扩展名推断
--fg <颜色> 前景色 #RRGGBB#RGB #000
--bg <颜色> 背景色 #RRGGBB#RGB #FFF
--logo <文件> 在 QR 码中央叠加 Logo 图片
--invert 反色输出(终端 ASCII

示例

# 基础生成
qrgen "Hello World" -o hello.png

# 高纠错 + 大尺寸
qrgen "重要合同编号: ABC-12345678" -o contract.png -l H -s 8 -m 6

# 彩色 QR 码
qrgen "My Brand" -o brand.png --fg "#FF5733" --bg "#FFF8E7"

# 带 Logo
qrgen "https://mycompany.com" -o logo.png -l H --logo avatar.png

# JPEG 输出
qrgen "JPEG test" -o qr.jpg -f jpeg

# WebP 输出
qrgen "WebP test" -o qr.webp -f webp

# 指定版本(强制版本 5
qrgen "Fixed version" -o fixed.png -v 5

编码模式

通过 --mode 参数可以使用 7 种编码模式,自动构造标准格式文本,无需手动拼接。

文本模式(默认)

qrgen "任意文本内容" -o text.png

等同于:

qrgen --mode text "任意文本内容" -o text.png

URL 模式

qrgen --mode url --url "https://github.com/LHY0125/QRGen" -o url.png

WiFi 模式

# 基础 WiFi
qrgen --mode wifi --ssid MyWiFi --password pass123 -o wifi.png

# 无密码 WiFi
qrgen --mode wifi --ssid FreeWiFi --encryption nopass -o free-wifi.png

# 隐藏网络 + WPA2
qrgen --mode wifi --ssid HiddenNet --password secret --encryption WPA2 --hidden -o hidden.png

生成的 QR 内容格式:WIFI:T:WPA;S:MyWiFi;P:pass123;;

参数 说明 默认值
--ssid WiFi 名称 必填
--password WiFi 密码
--encryption 加密方式:WPA WPA2 WEP nopass WPA
--hidden 隐藏网络标志 false

vCard 模式(电子名片)

# 基础名片
qrgen --mode vcard \
  --name "张三" \
  --phone "13800138000" \
  --email "zhangsan@example.com" \
  -o card.png

# 完整名片(10 字段)
qrgen --mode vcard \
  --name "张三" \
  --phone "13800138000" \
  --email "zhangsan@example.com" \
  --company "科技有限公司" \
  --title "高级工程师" \
  --address "北京市海淀区" \
  --vcard-url "https://zhangsan.com" \
  --birthday "1995-06-15" \
  --note "爱好: 编程, 摄影" \
  --photo "https://zhangsan.com/avatar.jpg" \
  -o full-card.png
参数 说明
--name 姓名
--phone 电话
--email 邮箱
--company 公司
--title 职位
--address 地址
--vcard-url 个人网址
--birthday 生日 YYYY-MM-DD
--note 备注
--photo 照片 URL

Email 模式

qrgen --mode email \
  --to "hello@example.com" \
  --subject "合作洽谈" \
  --body "您好,我对贵公司的产品很感兴趣。" \
  -o email.png

生成的 QR 内容格式:mailto:hello@example.com?subject=...&body=...

电话模式

qrgen --mode phone --number "13800138000" -o phone.png

扫描后直接拨号。

短信模式

qrgen --mode sms \
  --number "13800138000" \
  --message "你好,方便电话吗?" \
  -o sms.png

批量生成

从 JSON 或 CSV 文件批量生成 QR 码。

JSON 格式

[
  {"content": "产品 A", "level": "H"},
  {"content": "产品 B", "level": "M"},
  {"content": "产品 C"}
]
qrgen --batch items.json --output-dir ./qr_output/
# 输出: qr_output/qr_0001.png, qr_output/qr_0002.png, ...

CSV 格式

content,level
"产品 A",H
"产品 B",M
"产品 C",M
qrgen --batch items.csv --output-dir ./qr_output/ -s 8

批量 WiFi 名片

JSON 中可以用模式专用字段:

[
  {"ssid": "Office-1F", "password": "pass1", "encryption": "WPA2"},
  {"ssid": "Office-2F", "password": "pass2", "encryption": "WPA2"},
  {"ssid": "Guest", "encryption": "nopass"}
]

支持的批量字段:content url ssid password encryption hidden name phone email company address to subject body number message


解码

从图片文件解码 QR 码内容。

qrgen --decode qr.png
qrgen -d qr.jpg

输出示例:

解码成功:
  文本: https://example.com
  版本: 3
  纠错级别: M
  掩码: 2
  纠正错误: 0 码字

支持格式:PNG、JPEG、WebP、BMP。

解码器会自动对倾斜图片做旋转矫正。


纠错级别说明

级别 纠错率 适用场景
L ~7% 屏幕显示、数字传输
M ~15% 日常打印(默认)
Q ~25% 可能被遮挡的场景
H ~30% Logo 嵌入、户外使用

注意: 纠错越高,相同尺寸下可存储的文本越少。H 级建议与 Logo 嵌入配合使用。


文件格式对比

格式 特点 适用场景
PNG 无损压缩,支持透明 通用推荐
SVG 矢量,无限缩放 印刷、网页嵌入
JPEG 有损压缩,文件小 照片场景
WebP 现代格式,文件最小 Web 优化
BMP 无压缩,文件大 嵌入式系统
ASCII 终端字符画 快速预览

完整参数列表

Usage: qrgen [OPTIONS] [CONTENT]
       qrgen --decode <FILE>

基础选项:
  -o, --output <FILE>     输出文件 (.png/.bmp/.jpg/.webp/.svg)
  -l, --level <L/M/Q/H>   纠错级别 [default: M]
  -v, --version <1-40>    手动指定版本 [default: auto]
  -s, --size <PIXELS>     模块像素大小 [default: 4]
  -m, --margin <MODULES>  白边模块数 [default: 4]
  -f, --format <FORMAT>   图像格式: png/bmp/jpeg/webp [default: 由扩展名推断]
  --fg <#RRGGBB>          前景色 [default: #000]
  --bg <#RRGGBB>          背景色 [default: #FFF]
  --logo <FILE>           Logo 图片文件
  --invert                终端反色

模式选项:
  --mode <MODE>           编码模式: text/url/wifi/vcard/email/phone/sms/batch

WiFi 选项:
  --ssid <NAME>           WiFi 名称
  --password <PWD>        WiFi 密码
  --encryption <TYPE>     加密方式: WPA/WPA2/WEP/nopass [default: WPA]
  --hidden                隐藏网络

vCard 选项:
  --name <NAME>           姓名
  --phone <NUMBER>        电话
  --email <ADDR>          邮箱
  --company <NAME>        公司
  --title <TITLE>         职位
  --address <ADDR>        地址
  --vcard-url <URL>       个人网址
  --birthday <DATE>       生日 (YYYY-MM-DD)
  --note <TEXT>           备注
  --photo <URL>           照片 URL

Email 选项:
  --to <ADDR>             收件人
  --subject <TEXT>        主题
  --body <TEXT>           正文

电话/短信选项:
  --number <NUMBER>       电话号码
  --message <TEXT>        短信内容

URL 选项:
  --url <URL>             URL 链接

批量选项:
  --batch <FILE>          批量输入文件 (JSON/CSV)
  --output-dir <DIR>      批量输出目录

解码选项:
  -d, --decode <FILE>     解码 QR 图片

常见问题

Q: 生成的 QR 码扫不出来?

  1. 确保静区足够:-m 4 或更大
  2. 提高纠错级别:-l H
  3. 增大模块尺寸:-s 8 或更高
  4. 如果是彩色 QR,确保前景/背景对比度足够

Q: 如何生成超大文本的 QR 码?

降低纠错级别(L 级容量最大),或让系统自动选择版本:

qrgen "很长的文本..." -o big.png -l L

Q: Logo 叠加后扫不出来?

  1. 使用 H 级纠错(-l H
  2. Logo 尺寸占 QR 区域约 25%,系统会自动缩放
  3. 确保 Logo 图片是 PNG 格式

Q: 批量生成时如何指定纠错级别?

JSON 中每个条目可以设置 "level": "H",也可以在命令行用 -l H 统一设置。

Q: CSV 和 JSON 格式如何选择?

  • JSON:支持嵌套字段,推荐用于 WiFi/vCard 等复杂模式
  • CSV:简单表格,适合纯文本批量生成