Files
QRGen/CHANGELOG.md
T
Serendipity 05b1714628 fix: QR 扫描失败 + GUI 导出失败 — PNG margin + separator + fs 插件
🔴 QR 扫描失败根因 (2项):
- render/png: saturating_sub 导致 margin 区域映射到 finder 黑角,
  quiet zone 全黑,扫描器无法定位 QR
- matrix/patterns: 缺少右上 finder 左侧 + 左下 finder 顶部
  隔离带预留,数据模块破坏 finder 检测比率(1:1:3:1:1)

🔴 GUI 导出失败 (2项):
- gui/Cargo.toml + gui/lib.rs: 注册 tauri-plugin-fs 后端插件
  (前端 writeFile 调用缺少 Rust handler)
- capabilities: fs:allow-write-file + $HOME/** 路径 scope
  (ACL 默认不给 fs 写权限,需显式声明)

🔧 其他:
- ExportPanel: 导出失败显示红色错误信息(替代静默吞错)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-18 11:21:27 +08:00

1.5 KiB
Raw Blame History

Changelog

0.1.0 (2026-06-17)

Added

  • 核心算法:完整实现 ISO/IEC 18004 QR 码生成
    • GF(2⁸) Galois 域运算(预计算 exp/log 表,0x11D 本原多项式)
    • Reed-Solomon 纠错编码(动态生成多项式 + 多项式长除法 + 数据交错)
    • 四种编码模式:数字 / 字母数字 / 字节 / 汉字 (Shift JIS)
    • 字符串自动分段 + 最优模式选择
    • 8 种标准掩码 + 四规则惩罚评分(连续同色/2×2方块/伪定位图案/暗模块占比)
    • 格式信息 BCH(15,5) + 版本信息 BCH(18,6) 编码
    • 40 版本 × 4 纠错级别完整容量表
  • CLI 命令行工具 (qrgen)
    • PNG/SVG/终端 ASCII 三种输出
    • 可调纠错级别、版本号、模块大小、白边
    • 反色模式
  • GUI 桌面应用 (qrgen-gui)
    • Tauri 2 + React 18 + TypeScript + TailwindCSS
    • 7 种编码模式:文本 / URL / WiFi / vCard / Email / 电话 / SMS
    • 实时预览(200ms 防抖,SVG 渲染)
    • PNG/SVG 导出 + 复制到剪贴板
    • 历史记录(最近 50 条,回填/删除/清空)
    • 暗色模式(跟随系统)
    • 磨砂玻璃效果 (backdrop-blur)
  • 程序库 (qr-core)
    • 零外部 QR 依赖(仅 image crate 用于 PNG 输出)
    • 自动版本选择
    • 完整 40 版本 × 四级纠错支持

Technical

  • Cargo workspace 三层架构 (core + cli + gui)
  • qr-coreSerde 序列化支持(跨 IPC 传输)
  • GUIReact Context + useReducer 状态管理
  • CLIclap derive + anyhow 错误处理
  • 69 个测试(54 单元 + 15 集成)
  • NSIS Windows 安装包