docs: 更新全部 markdown 文档 — 加入解码器内容
- README: 解码功能说明 + CLI/Web/GUI 解码示例 + 项目结构树 + 规格表 - CHANGELOG: 解码器条目(9 模块 + 三端入口 + RS/BCH 算法) - ROADMAP: 解码移至已交付 + 前端工程化 + RS 纠错解码 - CLAUDE.md: 解码器架构 + Web API decode 端点 + IPC 接口
This commit is contained in:
@@ -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 # 顶层 API:decode_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) |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user