And*_*ndy 5 python qr-code decoding
我相信我可以成功地将二进制数据编码为二维码,但我很难解码该数据。
这个问题的最佳答案表明 QR 码阅读器通常在解码二进制数据时遇到问题:
问题出在解码上。因为大多数解码器会尝试将其解释为文本。但由于它是二进制数据,因此您不应尝试将其作为文本处理。即使您认为可以将其从文本转换为二进制,正如您所看到的,这可能会导致值不是有效文本的问题。
对于 Python 包来说,这有多真实?我尝试过使用pyzbarand opencv,但没有成功(它们对于utf-8字符串工作得很好)。我也在努力寻找 pyzbar 的有用文档,而 opencv 的文档却没有什么成果。
为了完整起见,下面是我创建的一个 QR 码示例。
data = b'\x00\x00\x00\x00\x00\x00\x00\x00\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00\x84\x00\x03\x02\x02\n\n\n\n\n\n\n\n\n\n\n\n\x08\x08\n\n\n\n\x08\x08\n\x08\x08\x08\x08\x08\x08\x08\x08\x08\n\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\n\x08\x08\x08\x08\n\n\n\x08\x08\r\r\n\x08\r\x08\x08\n\x08\x01\x03\x04\x04\x06\x05\x06\n\x06\x06\n\x0f\x0e\x0b\r\x0f\x0f\x0f\x0f\x10\x10\x0f\x0f\x0f\x0f\x0f\x0f\x0f\r\r\r\x0f\r\x0f\x0f\x0f\r\r\r\r\x0f\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xff\xc0\x00\x11\x08\x01@\x02\x00\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x02\x03\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\x02\x03\x06\x01\x07\x00\x08\t\xff\xc4\x00C\x10\x00\x02\x01\x02\x04\x04\x03\x05\x06\x06\x01\x03\x03\x03\x05\x00\x01\x02\x11\x00\x03\x04\x12!1\x05\x06"AQaq\x07\x132\x81\xf0\x14\x91\xa1\xb1\xc1\xd1\x08\x15#B'
Run Code Online (Sandbox Code Playgroud)
为了从该字节字符串生成二维码,我使用该segmo库,如下所示:
qr = segno.make(data)
qr.save(path/to/output/file)
Run Code Online (Sandbox Code Playgroud)
这是生成的二维码: