用javascript解码二进制QR码数据

用javascript解码二进制QR码数据,javascript,qr-code,Javascript,Qr Code,我有一个0/1的二维码黑白数组(我可以根据需要更改)。阵列的每个部分都是二维码的Y线 我需要写一些东西,可以解码成有用的二维码数据,它可以是许多不同类型的二维码,所以我需要能够检测到它是哪种类型 这可以用纯javascript实现吗?我不能运行JQuery 它看起来像这样(40行中的前两行),但我从一个带有for循环的字符串生成它,这样我就可以将它转换为其他任何内容 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0

我有一个0/1的二维码黑白数组(我可以根据需要更改)。阵列的每个部分都是二维码的Y线

我需要写一些东西,可以解码成有用的二维码数据,它可以是许多不同类型的二维码,所以我需要能够检测到它是哪种类型

这可以用纯javascript实现吗?我不能运行JQuery

它看起来像这样(40行中的前两行),但我从一个带有for循环的字符串生成它,这样我就可以将它转换为其他任何内容

1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1
1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 

以下是方法:
toString(2)
转换为二进制字符串。
或者
parseInt(输入,10)
如果您知道输入应该是十进制的。

要从二进制转换为文本,请使用
parseInt(输入,2)。toString(10)

这可以通过zxing,通过zxing的javascript实现来完成

首先,您必须将数据保存在二进制矩阵中,然后对其进行解码

var bitMatrix = new BitMatrix(width);
bitMatrix.clear();

//for each black pixel
bitMatrix.flip(y,x);

var decoded = Decoder.decode(bitMatrix);

var decodedString = "";

for (var i = 0; i < decoded.length; i++) {
    var currentWord = decoded[i];
    for(var j = 0; i < currentWord.length; j++)
    {
        result += String.fromCharCode(parseInt(currentWord[i]));
    }   
}
var位矩阵=新位矩阵(宽度);
bitMatrix.clear();
//对于每个黑色像素
位矩阵翻转(y,x);
var decoded=解码器.decode(位矩阵);
var decodedString=“”;
对于(变量i=0;i
解码后包含一个或多个ascii字节数组。只需对解码后的所有数组运行循环。 结果然后保存一个包含qr码原始字符串的字符串


这在理论上适用于zxing支持的所有类型,但我只使用qr码对其进行了测试。

“阵列的每个部分都是Y线”不一定能得到它。十,。还有,您需要什么输出?如果每个值表示一个像素(或一个块),并且您知道像素的x数(宽度),您可以使用canvas ImageData从中生成图像。我不认为这是二进制数据,但我可能会问错问题。将字符串转换为二进制数据并不是我试图解决的问题。我正试图将QR字符串解码成它所说的内容。