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
+19 -4
View File
@@ -2,7 +2,7 @@
## 项目概述
QRGen — 从零手搓的 QR 码生成器,Rust workspace (core + cli + gui + web),完整实现 ISO/IEC 18004 国际标准。GUI + CLI + Web + Library 四种使用方式。
QRGen — 从零手搓的 QR 码生成/解码器,Rust workspace (core + cli + gui + web),完整实现 ISO/IEC 18004 国际标准。GUI + CLI + Web + Library 四种使用方式,支持编码+解码双向闭环
## 构建命令
@@ -27,6 +27,9 @@ cargo run -p qrgen -- "Hello World"
# Web 服务
cargo run -p qrgen-web # → http://localhost:3000
# CLI 解码
cargo run -p qrgen -- --decode test.png
# GUI 开发模式
cd gui/src-frontend && pnpm dev # 终端1: Vite 热更新
cargo run -p qrgen-gui # 终端2: Tauri 窗口
@@ -71,12 +74,22 @@ QRGen/
│ ├── qr.rs # 顶层 API — QrCode::encode()9 步流水线
│ ├── version.rs # 40 版本容量表 + 自动选择
│ ├── ecc/
│ │ ├── galois.rs # GF(2⁸) 运算 + exp/log 预计算表
│ │ ├── galois.rs # GF(2⁸) 运算 + exp/log 预计算表 + poly_eval
│ │ └── reed_solomon.rs # RS 纠错码 + 数据交错
│ ├── encoder/
│ │ ├── mode.rs # 4 种编码模式 (数字/字母/字节/汉字 Shift JIS)
│ │ ├── segment.rs # 字符串分析 + 自动分段
│ │ └── bitstream.rs # 比特流拼接 + 终止符/填充
│ ├── decoder/ # QR 解码器(从零手写)
│ │ ├── mod.rs # 顶层 API — decode_image() + decode_matrix()
│ │ ├── bch.rs # BCH(15,5)+BCH(18,6) 查表解码
│ │ ├── format.rs # 格式信息 + 版本信息读取
│ │ ├── extract.rs # 逆向蛇形排列提取码字
│ │ ├── deinterleave.rs # 逆向 RS 数据交错
│ │ ├── rs_decode.rs # RS 纠错流水线
│ │ ├── mode_decode.rs # 逆向 4 种编码模式
│ │ ├── detect.rs # 定位图案检测 + 采样网格
│ │ └── image.rs # 图像加载 + 二值化
│ ├── matrix/
│ │ ├── grid.rs # 模块矩阵 (含 reserved 保留区)
│ │ ├── patterns.rs # 定位/对齐/时序图案 + BCH(15,5) + BCH(18,6)
@@ -122,6 +135,7 @@ QRGen/
|---------|------|--------|------|
| `encode_qr` | `text: String, level: String, margin: u8` | `Result<QrResponse, String>` | 编码文本为 QR,返回 SVG + 版本/尺寸/掩码 |
| `export_png` | `text: String, level: String, margin: u8, module_size: u8` | `Result<Vec<u8>, String>` | 编码并导出 PNG 字节 |
| `decode_qr` | `image_bytes: Vec<u8>` | `Result<String, String>` | 解码图片为文本 |
| `save_history` | `entry: HistoryEntry` | `Result<(), String>` | 添加历史记录(最多 50 条) |
| `load_history` | — | `Result<Vec<HistoryEntry>, String>` | 加载全部历史记录 |
| `clear_history` | — | `Result<(), String>` | 清空历史记录 |
@@ -132,6 +146,7 @@ QRGen/
|----------|------|------|
| `GET /` | — | HTML 页面(内嵌 7 种编码模式) |
| `GET /api/qr` | `text`, `level`(L/M/Q/H), `margin`(1-20), `size`(2-20), `fmt`(svg) | PNG 或 SVG |
| `POST /api/decode` | multipart `file` (PNG/JPEG/WebP) | JSON `{text, version, level, mask, errors_corrected}` |
## 前端状态管理
@@ -181,9 +196,9 @@ Action: SET_MODE | SET_FORM_DATA | SET_CONFIG | SET_PREVIEW | SET_LOADING
| 层级 | 数量 | 说明 |
|------|------|------|
| 单元测试 | 58 | Galois 运算、RS 编码、模式编码、掩码评分、格式信息等 |
| 单元测试 | 72 | Galois 运算、RS 编码、模式编码、掩码评分、格式/版本信息 roundtrip、BCH 容错、蛇形提取等 |
| 集成测试 | 24 | 端到端编码、渲染输出验证、边距、特殊字符、自动版本选择、格式信息 roundtrip |
| 总计 | 82 | `cargo test` 全部通过 |
| 总计 | 96 | `cargo test` 全部通过 |
## 版本号升级清单