zsqk / deno-fn

some functions for deno and browser
https://jsr.io/@zsqk/somefn
MIT License
2 stars 1 forks source link

feat: add fn gen qrcode svg #74

Open iugo opened 4 months ago

iugo commented 4 months ago

有人在 deno 提供兼容: https://github.com/lowlighter/libs/blob/7e138809c4d645f7ed2411f32744b53c3ecde5b5/qrcode/mod.ts

还有一些更常见的, 但没有测试 deno 兼容性: https://github.com/papnkukn/qrcode-svg/blob/47d56ec28fcd0a3aabbb5f11a34167a02a80c54e/lib/qrcode.js

其实自己写一个都行:

  1. 编码字符数据为字节数据 string => Uint8Array.
  2. 编码字节数据为一个二维数组 boolean[][].
  3. 补充定位图案的固定格式.
  4. 将编码渲染为 SVG.
  5. 优化 SVG, 减小体积 (可以被继承到上一步).

目前最新的二维码规范为: https://www.iso.org/standard/62021.html (下载收费, 但可以通过标准名找到 PDF 版本)

iugo commented 4 months ago

目前的这个库有个问题, 不支持更复杂的编码, 比如三字节的 emoji.