ALI1416 / qrcode-encoder-js

QR Code Encoder For JavaScript 二维码生成器JavaScript版

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QR Code Encoder For JavaScript 二维码生成器JavaScript版

License Node Support NPM Tag Repo Size

Node CI

简介

本项目迁移自ALI1416/QRCodeEncoder.Net,只编写了生成器部分,并对处理逻辑进行了大量优化,构建后qrcode-encoder.min.js文件仅16kb

注意:本项目不提供二维码绘制方法,如需绘制请看使用示例

在线示例

其他语言项目

依赖导入

网页

https://unpkg.com/@ali1416/qrcode-encoder@1.1.3/dist/qrcode-encoder.min.js

node

npm install @ali1416/qrcode-encoder@1.1.3

方法和参数

二维码 QRCode

参数名 中文名 类型 默认值
content 内容 string (无)
level 纠错等级 number 0
mode 编码模式 number (自动探测)
versionNumber 版本号 number (最小版本)

版本 Version

参数名 中文名 类型 默认值
length 内容字节数 number (无)
level 纠错等级 number (无)
mode 编码模式 number (无)
versionNumber 版本号 number (最小版本)

掩模模板 MaskPattern

参数名 中文名 类型
data 数据 boolean[]
version 版本 Version
level 纠错等级 number

纠错等级 level

等级 纠错率
0 L 7%
1 M 15%
2 Q 25%
3 H 30%

编码模式 mode

模式 备注
0 NUMERIC 数字0-9
1 ALPHANUMERIC 数字0-9、大写字母A-Z、符号(空格)$%*+-./:
2 BYTE(ISO-8859-1) 兼容ASCII
3 BYTE(UTF-8)

版本号 versionNumber

取值范围:[1,40]

使用示例

// node test-js.js
const QRCode = require("../dist/qrcode-encoder.js");
const content = "1234😀";
const qr = new QRCode(content);
console.log(QrMatrix2SvgPath(qr.Matrix, 10));

/**
 * 二维码boolean[][]转SVG路径
 * @param bytes boolean[][]
 * @param pixelSize 像素尺寸
 * @return string SVG
 */
function QrMatrix2SvgPath(bytes, pixelSize) {
  let length = bytes.length;
  let size = (length + 2) * pixelSize;
  let svg = "<svg width=\"" + size + "\" height=\"" + size + "\" viewBox=\"0 0 " + size + " " + size + "\" xmlns=\"http://www.w3.org/2000/svg\">\n";
  svg += "<path d=\"\n";
  for (let x = 0; x < length; x++) {
    for (let y = 0; y < length; y++) {
      if (bytes[x][y]) {
        let xx = (x + 1) * pixelSize;
        let yy = (y + 1) * pixelSize;
        svg += "M" + xx + " " + yy + "H" + (xx + pixelSize) + "V" + (yy + pixelSize) + "H" + xx + "z\n"
      }
    }
  }
  svg += "\"/>";
  svg += "</svg>\n";
  return svg;
}

更多请见测试

更新日志

点击查看

参考

关于

About

About

QR Code Encoder For JavaScript 二维码生成器JavaScript版

License:Apache License 2.0


Languages

Language:TypeScript 84.9%Language:HTML 8.2%Language:JavaScript 3.7%Language:Vue 3.2%