docs: 更新全部 markdown 文档 — 加入解码器内容

- README: 解码功能说明 + CLI/Web/GUI 解码示例 + 项目结构树 + 规格表
- CHANGELOG: 解码器条目(9 模块 + 三端入口 + RS/BCH 算法)
- ROADMAP: 解码移至已交付 + 前端工程化 + RS 纠错解码
- CLAUDE.md: 解码器架构 + Web API decode 端点 + IPC 接口
This commit is contained in:
2026-06-19 20:45:22 +08:00
parent 11fbe20102
commit 797a41ea50
4 changed files with 58 additions and 16 deletions
+20 -5
View File
@@ -1,6 +1,6 @@
<p align="center">
<h1>🀫 QRGen</h1>
<p>从零手搓的 QR 码生成器 — ISO/IEC 18004 完整实现</p>
<p>从零手搓的 QR 码生成/解码器 — ISO/IEC 18004 完整实现</p>
</p>
<p align="center">
@@ -11,7 +11,7 @@
<img src="https://img.shields.io/badge/axum-0.8-ff6b35" alt="axum">
<img src="https://img.shields.io/badge/docker-ready-2496ed" alt="docker">
<img src="https://img.shields.io/badge/license-MIT-green" alt="license">
<img src="https://img.shields.io/badge/tests-58%20passed-brightgreen" alt="tests">
<img src="https://img.shields.io/badge/tests-72%20passed-brightgreen" alt="tests">
<img src="https://img.shields.io/badge/clippy-clean-brightgreen" alt="clippy">
<img src="https://img.shields.io/badge/prettier-formatted-ff69b4" alt="prettier">
<img src="https://img.shields.io/badge/eslint-checked-4b32c3" alt="eslint">
@@ -22,9 +22,9 @@
## 简介
QRGen 是 **从零手写** 的 QR 码(二维码)生成器,完整实现 ISO/IEC 18004 国际标准。不依赖任何第三方 QR 编码库,所有算法(Galois 域运算、Reed-Solomon 纠错编码、BCH 格式编码、掩码评分)均从底层手搓。
QRGen 是 **从零手写** 的 QR 码(二维码)生成/解码器,完整实现 ISO/IEC 18004 国际标准。不依赖任何第三方 QR 编码/解码库,所有算法(Galois 域运算、Reed-Solomon 纠错编码、BCH 格式编码、掩码评分、定位检测)均从底层手搓。
支持 **四种使用方式**:程序库(`qr-core`)、命令行(`qrgen`)、桌面 GUI`qrgen-gui`)、Web 服务(`qrgen-web`)。
支持 **四种使用方式**:程序库(`qr-core`)、命令行(`qrgen`)、桌面 GUI`qrgen-gui`)、Web 服务(`qrgen-web`)。支持**编码**(文本→QR)和**解码**(QR→文本)双向闭环。
## 架构
@@ -120,11 +120,15 @@ qrgen "https://example.com" -o qr.png -s 8
# 生成 SVG(高纠错)
qrgen "重要数据" -o qr.svg -l H
# 解码 QR 码图片
qrgen --decode qr.png
```
### GUI 桌面应用
- **7 种编码模式**:文本 / URL / WiFi / vCard / Email / 电话 / SMS
- **解码**:选择图片文件,解码 QR 码为文本
- **实时预览**200ms 防抖,PNG 即时渲染
- **多格式导出**:PNG(可调模块大小)/ SVG / 复制到剪贴板
- **历史记录**:最近 50 条,点击回填,支持删除和清空
@@ -134,7 +138,7 @@ qrgen "重要数据" -o qr.svg -l H
### Web 服务
- **内嵌 HTML 界面**:复刻 GUI 三栏布局,7 种编码模式
- **REST API**`GET /api/qr?text=&level=&margin=&size=&fmt=svg` → PNG / SVG
- **REST API**`GET /api/qr` → PNG / SVG`POST /api/decode` → 上传图片返回文本
- **Docker 部署**17.7MB Alpine 镜像,开箱即用
## 安装
@@ -234,6 +238,16 @@ QRGen/
│ ├── ecc/
│ │ ├── galois.rs # GF(2⁸) 运算 + exp/log 表
│ │ └── reed_solomon.rs # RS 纠错码 + 数据交错
│ ├── decoder/ # QR 解码器(从零手写)
│ │ ├── mod.rs # 顶层 APIdecode_image + decode_matrix
│ │ ├── bch.rs # BCH(15,5)+BCH(18,6) 查表解码
│ │ ├── format.rs # 格式信息 + 版本信息读取
│ │ ├── extract.rs # 逆向蛇形排列提取码字
│ │ ├── deinterleave.rs # 逆向 RS 数据交错
│ │ ├── rs_decode.rs # RS 纠错(伴随式→BM→Chien→Forney
│ │ ├── mode_decode.rs # 逆向 4 种编码模式
│ │ ├── detect.rs # 定位图案检测 + 采样网格
│ │ └── image.rs # 图像加载 + 二值化
│ ├── encoder/
│ │ ├── mode.rs # 4 种编码模式
│ │ ├── segment.rs # 字符串分段
@@ -283,6 +297,7 @@ QRGen/
| 编码模式 | 数字 / 字母数字 / 字节 / 汉字 (Shift JIS) |
| 输出格式 | PNG / SVG / 终端 ASCII |
| 使用方式 | Library / CLI / GUI / Web API |
| 解码 | 从图片识读 QR 码 → 文本(PNG/JPEG/WebP |
| 自动版本选择 | 根据数据长度 + 纠错级别 |
| Docker 镜像 | ~18MB (alpine) |