我有一个QRCode图像,它的内容是:P01 V0N S0000000
我尝试用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)
}
})
}
我也试过了不同的qazxsw poi参数,但所有版本> 1都会产生一个密集的模式。
这个QRCode图像是用某种version
生成的,难以复制吗?
无需尝试使用其他版本,因为您的第一张图片显然是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) = 64
,source,L
为M
模式Q
为alphanumeric
模式因此,你有L
可能产生的图像。