一款开源的在线二维码生成器,它允许用户自定义数据和外观,生成美观的二维码。

文摘   2024-11-19 20:17   中国香港  

qrframe

一款开源的在线二维码生成器,它允许用户自定义数据和外观,生成美观的二维码。

Github地址

https://github.com/zhengkyl/qrframe

在线体验

https://qrframe.kylezhe.ng/

主要特点:

  1. 自定义数据

  • • 支持编码模式、版本、错误容忍度和掩码模式的自定义。

  • • 功能由作者自己的 Rust 库 fuqr 提供支持,该库被编译为 WASM 并在浏览器中运行,适用于 Windows 系统。

  1. 自定义外观

  • • 用户可以选择预设模板,通过代码编辑器自定义或从头开始创建新模板。

  • • 可以在代码中定义任意的 UI 参数。

  • • 支持 SVG 和 PNG 格式。

  • • 所有代码都在浏览器的 Web Worker 中直接运行,没有限制。

  • • 没有沙箱、白名单、黑名单等限制,除了一个 5 秒的超时机制来阻止无限循环。

  • • 生成的 SVG 不会进行清理,因为清理 SVG 是不可能的任务,会破坏正常的 SVG,增加调试难度和预览更改的延迟。

  • • 即使复制粘贴并运行恶意软件,也不会泄露任何秘密。

  1. 创建预设

  • • 预设必须导出 paramsSchema 和 renderSVG 或 renderCanvas 中的一个。

  1. paramsSchema

  • • 这个模式定义了 UI 组件,其值通过 params 对象传递给 renderSVG 或 renderCanvas。

  • • 除了 type 属性外,所有属性都是可选的,除非:

    • • type 为 select 时必须有一个非空的选项数组。

    • • type 为 array 时必须有一个有效的 props 值。

  • • 示例中默认值被显式设置为隐式默认值。

  1.  renderSVG 和 renderCanvas

  • • renderSVG 是一个函数,接受一个 QR 对象和一个 params 对象,返回一个字符串。

  • • renderCanvas 是一个函数,接受一个 QR 对象、一个 params 对象和一个 OffscreenCanvas 对象。

  • • params 是一个对象,包含 paramsSchema 中所有键和它们各自的输入组件的值。

  • • QR 对象包含最终的二维码矩阵,表示一个正方形,其中一边宽为版本号乘以 4 加 17,模块(像素)从左到右、从上到下存储。

  1. Qr 类型定义

  • • matrix: Uint8Array 类型,表示二维码矩阵。

  • • version: 版本号,范围从 1 到 40。

  • • mask: 掩码模式,范围从 0 到 7。

  • • ecl: 错误校正级别,范围从 0 到 3,分别代表低、中、四分之一、高。

  • • mode: 编码模式,范围从 0 到 2,分别代表数字、字母数字、字节。

  1. 矩阵位标志

  • • Module 定义了每个 u8 在矩阵中的位标志,包括:

    • • ON: 表示模块开启。

    • • DATA: 表示数据模块。

    • • FINDER: 表示定位图案。

    • • ALIGNMENT: 表示对齐图案。

    • • TIMING: 表示时序图案。

    • • FORMAT: 表示格式信息。

    • • VERSION: 表示版本信息。

    • • MODIFIER: 表示定位图案和对齐图案中心,格式和版本信息的副本。


github淘金
打破信息差,不为免费而付费。关注我,每日分享各种有趣,实用的开源项目。
 最新文章