如何使用给定的内容文本克隆QRCode图像?

问题描述 投票:1回答:1

我有一个QRCode图像,它的内容是:P01 V0N S0000000 enter image description here

我尝试用matchPattern用不同的node-qrcode重新生成这个图像:

const $qr = require('qrcode')
const text = 'P01 V0N S0000000'

for (let i = 0; i < 8; i++) {
  let path = `P01V0NS0000000-${i}.png`
  const opt = {
    maskPattern: i
  }
  $qr.toFile(path, text, opt, function (err) {
    if (err) {
      console.log(err)
    } else {
      console.log(opt)
    }
  })
}

但是生成的图像都没有与目标相同的模式:enter image description here

我也试过了不同的qazxsw poi参数,但所有版本> 1都会产生一个密集的模式。

这个QRCode图像是用某种version生成的,难以复制吗?

node.js qr-code
1个回答
0
投票

无需尝试使用其他版本,因为您的第一张图片显然是salt。相反,它可能是格式编码(给定一组字符,应用程序可能使用version 1 (21x21),你的原始可能是alphanumeric例如)

根据您提供的链接,我建议您阅读关于模式的qazxsw poi,并尝试使用:

byte

或者:

this section

看看是否有任何匹配您的原始代码。

另一个可以改变QR码方面的参数是mode: 'alphanumeric' 。我猜测默认情况下mode: 'byte' 使用的是版本1可能的最高级别,而原始版本可能会使用较低级别的版本。

有了这些参数,你有一套error correction level可能的QR码,里面有相同的数据,所以也许其中一个匹配!


编辑

由于您的数据长度为16个字符,因此范围会缩小,因为纠错级别只能具有以下值(node-qrcode):

  • 8(maskPattern)*2(mode)*4(errorCorrectionLevel) = 64sourceLM模式
  • Qalphanumeric模式

因此,你有L可能产生的图像。

© www.soinside.com 2019 - 2024. All rights reserved.