NaturalHistoryMuseum / pyzbar

Read one-dimensional barcodes and QR codes from Python 2 and 3.
MIT License
718 stars 175 forks source link

Unable to decode QR data #124

Closed MayankFawkes closed 2 years ago

MayankFawkes commented 2 years ago
from PIL import Image
from pyzbar.pyzbar import ZBarSymbol, decode
img = Image.open('unknown.png')
output = decode(img, symbols=[ZBarSymbol.QRCODE])
print(output)

unknown

output in code:

[Decoded(data=b'PK\x03\x04\x14', type='QRCODE', rect=Rect(left=12, top=13, width=604, height=605), polygon=[Point(x=12, y=14), Point(x=12, y=618), Point(x=614, y=616), Point(x=616, y=13)])]

but this is incomplete data

when i am trying to decode on https://zxing.org/w/decode.jspx

image

this is what i want in bytes in python. but code seems cant parse the all data.

nmccann commented 2 years ago

I have a fork here which is able to read the provided QR code (and later unzip it, as per guidance on this blog post).

My fork incorporates the changes from this PR and this PR. The second PR seems to be the important part - it adds a binary parameter, which you can set to True for these kinds of QR codes.

Something I've found with these QR codes, is that it seems to be important to keep the data in bytes, when I convert it to a utf8 string and then back again (and I've tried a few different encodings), it results in corrupt data that can't be unzipped later.

Hopefully this helps.

MayankFawkes commented 2 years ago

This is helpful and yeah all of those binarys are important and shouldn't be decode unless it unziped, thanks a lot for your time and reply, you saved my alot time, now i am just hoping pyzbar to accept your pr and make a release on pypi. Thanks again

I will close this once your pr is accepted.

MayankFawkes commented 2 years ago

I just tried it, reading accuracy is low or some data is missing, i tried to read QR1 and with the data of QR1 i tried to make the same QR with https://github.com/lincolnloop/python-qrcode and both are not same, even i tried to DECODE the QR1 bytes with zip it failed,

this is QR1. okas

This QR i made from QR1 data. okok

nmccann commented 2 years ago

@MayankFawkes I can confirm that the first QR code is readable and unzippable, while the second is readable but not unzippable (I get a "bad magic number" error). I've encountered something similar with Indian QR codes, I suspect that the QR Code creation library that they are using is doing something very particular that other libraries don't do. Specifically, they appear to be using this library: QRCode.react which internally is using this very old (and seemingly no longer supported) JS library: QR.js. I think there is something specific that the old library is doing that more modern ones wouldn't be doing.

Here is an example of the content of the two QR codes:

First (works)

b'PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00certificate.json\x8cT\xdbr\xea8\x10\xfc\x15j\x1e\xb7\x1c\xe2\x0b`\xf0\xcbn\x02Ip\xc25\x06\x12\xd8:\x95\x12\xf2\x18+\xb1%\x90d\x08I\xf1\xef[29\xb9l\x9d\xec\x1e\xde\xa4\xe9i\r\xdd\xedy\x85\xbf\xa8\xe0\x1a\x9f5\x04\x7fC\xaa\xf5Z\x05\xa7\xa7\xbb\xdd\xae\xba\xf3\xaaB\xaeN]\xdbi\x9eR\x891r\xcdH\xa6N\xb7\x0eX\xef@*v\x8cWWb[e\xfc+\x8aP\xca8\xd1Lp\xd3\xf1\xc3\x02\xbd_\xa3yc\x86\x92%\x8c,3l\xbf\xe3\xc1\x82\x91\x14"\x19&\xb3\x8f\xbeO\xe5\x1f\x16|\x90G\xc5\xf2\x11\xa9\x86\xe0\xf5\x8d\x13F(\x95\xe0`\x01\x8b!\x80\x98\xc5\xc1\x19\x89SBd\xa5Md\x1c\xfc\xf1\xf6\xf3\x9bu\x0f,\x90\x98\x84\x06\xe7\xda^\xddnx\x8e\xed\xf9\r\xbb\x01\x16p\x92\x1b\xb6\x01bF\xf2\xcaU\xb1\xd6\x04,(\xd2\x92\x15,X!\x8fQB\x00\x97\x98\x93\x0c\xc1\x02\xb22\r5\xbfl63\x93\x8c\xe9=\x04\x10\xf2\x98\x113\x11\x89c\x89J\x99a\x95\x96\x88\xfa\xec\xe7\x85a\xfcr\xe5\x1e\xefb\xa6\xb4d\xe6\xff\x99\x13=\xf2}0\xdd\xe2\x8a\t\xfe\xe5\xaa-\n\xaee\xf9\xec\x00,X\x0b\xa5I\xd6\x161BP\xf3\xeb\x8d\x86s8X\xc0\x94*\xca\xe1\x7fi\x1d\x1c\x01\x84S\xec\x10\x8d\xa5:\xaesb\xfb\'\xb63\xb1[\x81c\x075\xaf\xea\xd4[\x0b\xb0\x00\xb7,FN\x8d\x9b\xafG\xc9\x7f\xc9y\x8c\x00\x9e\xfav\xddn\xf9\x9e\xe79&9\tb\xbc$\xf4i*\xb3\xef\x1a\xff\xfc\xda\xc1x"~\x1fMQj\x960J4\x96.\x7f\xad\xbe\x87\xf0#f&\\K\xa2ij\x9ct\\g\xe18&%o\xd3C\x00\xed\xe1,\x8c\xba\xe1E\xaf\x03\x16\xe4\x84\x17\t\xa1\xba\x90\xa5\x98\x11\xca"\xaf\x84\\i\xa6\x0b\x8d\x15\x91TJ\xeb\x8d\x8f\xdf\xe9\xe8V]\xd7-uL\x12\xa4\x9am1\xd2D\xea/\xd8\xcf\xd5)\xd7,\xfbw5\x16\n!p-\xd0B\x93\xac#\x14\xaa\xf2\xb8-\xbf.3\xdb\xeb\xcf<Gd\xc94\xa9L\x98\\\x13\x9d28X\x90\x10\xca\x8eI\xfd\x84\x92\xa8vD\xb3JDS!\xb2\xff\xce\xee\xa8\x90\x84\xb3J[d\x19R-QWn\xb02B\xa4)\xfe\x7f\xac;D\x97\n}\x9f\xed>\x89\xd3=\xa9\x8c$\x89Q\xa5\xbf\x95t\x80\xc3\xe1\xf0\xc3\x02.\xf8D\x12\xae\x12\x94f\xc7@\x00Z\x16f\xa8\xb5Y0\x9f\x96\xc6\xad"\x11[qb\xac4K\x0e\xca\x1dC4\xc6\xbfN\xbfq\xec\xa8.-s\xd3G\x9d\x8a\x9f\xfb\x86\xbd\x99^>2*\xe4\xba\xb4\x07\x88R&\x8e\xef`\x0b\x1ewF>\xdc_\xa7\xcb+\xca\x86\xecz<}\t\x9d\x01\x0bU\x98\x87\xee\xa0\x1d6\x16\xf9\xa5\xa2\xeeT\x85\xf9`O\xee\xc7l\x98)6\x7f\x9c\xdba\xe6\xb4\xaa\xd5\xae\xda4\xf8\x00y\xebeY\x9b\xe9\x99\xdc\xbaw\xe3\xab\xf0E\xd3l>\xa6Y4\xbe\x15\xf3\x1eN\x16\x17\xf5\xbe\xff\xe8D=1\x8c\xf8\xd0\x11\x8b\xd9\xd6\xcb\x9f\xf2n\x9fN\xecfm\xb4f\xdd\xe2Ye\xce\x9a8q\xfd\x8a7\xc4\xb5?\xdd\xc4x6\x9b\x8c\xe6\xc5\xa2\xcb\x9e\x87\x8e\xdf\xbc|\xbe\xdcm\xe2\x8b\x19\xe6\xc9\xddK\xba\xb8q\xc9no7\xdc:\xb9\x1fz\xf3\xb0\xd5\xcc\xe5\xcbx\xe0\xdd\xef\x1f\x84\x9d.\xf4]\x83\\r{\x92\xde\xa5\xb7E3\xdf\xad\x99-\x9f\xe4\xdd\xed0\xec\xd1\x87h\xaa\xf7\xad\r\x1fv\xf0<z\x9c\xc7\xf5eQ\xdc\x9d\xf7Z[}\xe3\xf7{\xc5m[\xcd\xc6\xd1P=\xac\x1a\xed\xf9\xd6\xaf\xe9\xf3\xa6\xde\xd8\xbb\ro\xb5\x9ennpy6~(\n\xe6\xb5\xe3Q=Zgu\xe7eR\xd0\x93\xf3\xfe6;y\xb8\xe9\xcd/6+\xb7\xa3\xe3\xdcn?/\xfd\xe1<\xbd\xdc\xb3\xf9=\xbd~\xecy\xeet\x1aw\xead?+\xa6\x99\x87\xf6D$\xb55\x9d5\x8a\xae\xee.g\xb5\xc9\xf4\xac\xef\x9f\x0c\xcf\xf5|~>Y\xc1\xe1\xf0O\x00\x00\x00\xff\xffPK\x07\x08\xc3\xfc\xcb!\xef\x03\x00\x00\t\x07\x00\x00PK\x01\x02\x14\x00\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\xc3\xfc\xcb!\xef\x03\x00\x00\t\x07\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00certificate.jsonPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00>\x00\x00\x00-\x04\x00\x00\x00\x00'

Second (doesn't work)

b'PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00certificate.json\xc2\x8cT\xc3\x9br\xc3\xaa8\x10\xc3\xbc\x15j\x1e\xc2\xb7\x1c\xc3\xa2\x0b`\xc3\xb0\xc3\x8bn\x02Ip\xc3\x825\x06\x12\xc3\x98:\xc2\x95\x12\xc3\xb2\x18+\xc2\xb1%\xc2\x90d\x08I\xc3\xb1\xc3\xaf[29\xc2\xb9l\xc2\x9d\xc3\xac\x1e\xc3\x9e\xc2\xa4\xc3\xa9i\r\xc3\x9d\xc3\xady\xc2\x85\xc2\xbf\xc2\xa8\xc3\xa0\x1a\xc2\x9f5\x04\x7fC\xc2\xaa\xc3\xb5Z\x05\xc2\xa7\xc2\xa7\xc2\xbb\xc3\x9d\xc2\xae\xc2\xba\xc3\xb3\xc2\xaaB\xc2\xaeN]\xc3\x9bi\xc2\x9eR\xc2\x891r\xc3\x8dH\xc2\xa6N\xc2\xb7\x0eX\xc3\xaf@*v\xc2\x8cWWb[e\xc3\xbc+\xc2\x8aP\xc3\x8a8\xc3\x91Lp\xc3\x93\xc3\xb1\xc3\x83\x02\xc2\xbd_\xc2\xa3yc\xc2\x86\xc2\x92%\xc2\x8c,3l\xc2\xbf\xc3\xa3\xc3\x81\xc2\x82\xc2\x91\x14"\x19&\xc2\xb3\xc2\x8f\xc2\xbeO\xc3\xa5\x1f\x16|\xc2\x90G\xc3\x85\xc3\xb2\x11\xc2\xa9\xc2\x86\xc3\xa0\xc3\xb5\xc2\x8d\x13F(\xc2\x95\xc3\xa0`\x01\xc2\x8b!\xc2\x80\xc2\x98\xc3\x85\xc3\x81\x19\xc2\x89SBd\xc2\xa5Md\x1c\xc3\xbc\xc3\xb1\xc3\xb6\xc3\xb3\xc2\x9bu\x0f,\xc2\x90\xc2\x98\xc2\x84\x06\xc3\xa7\xc3\x9a^\xc3\x9dnx\xc2\x8e\xc3\xad\xc3\xb9\r\xc2\xbb\x01\x16p\xc2\x92\x1b\xc2\xb6\x01bF\xc3\xb2\xc3\x8aU\xc2\xb1\xc3\x96\x04,(\xc3\x92\xc2\x92\x15,X!\xc2\x8fQB\x00\xc2\x97\xc2\x98\xc2\x93\x0c\xc3\x81\x02\xc2\xb22\r5\xc2\xbfl63\xc2\x93\xc2\x8c\xc3\xa9=\x04\x10\xc3\xb2\xc2\x98\x113\x11\xc2\x89c\xc2\x89J\xc2\x99a\xc2\x95\xc2\x96\xc2\x88\xc3\xba\xc3\xac\xc3\xa7\xc2\x85a\xc3\xbcr\xc3\xa5\x1e\xc3\xafb\xc2\xa6\xc2\xb4d\xc3\xa6\xc3\xbf\xc2\x99\x13=\xc3\xb2}0\xc3\x9d\xc3\xa2\xc2\x8a\t\xc3\xbe\xc3\xa5\xc2\xaa-\n\xc2\xaee\xc3\xb9\xc3\xac\x00,X\x0b\xc2\xa5I\xc3\x96\x161BP\xc3\xb3\xc3\xab\xc2\x8d\xc2\x86s8X\xc3\x80\xc2\x94*\xc3\x8a\xc3\xa1\x7fi\x1d\x1c\x01\xc2\x84S\xc3\xac\x10\xc2\x8d\xc2\xa5:\xc2\xaesb\xc3\xbb\'\xc2\xb63\xc2\xb1[\xc2\x81c\x075\xc2\xaf\xc3\xaa\xc3\x94[\x0b\xc2\xb0\x00\xc2\xb7,FN\xc2\x8d\xc2\x9b\xc2\xafG\xc3\x89\x7f\xc3\x89y\xc2\x8c\x00\xc2\x9e\xc3\xbav\xc3\x9dn\xc3\xb9\xc2\x9e\xc3\xa79&9\tb\xc2\xbc$\xc3\xb4i*\xc2\xb3\xc3\xaf\x1a\xc3\xbf\xc3\xbc\xc3\x9a\xc3\x81x"~\x1fMQj\xc2\x960J4\xc2\x96.\x7f\xc2\xad\xc2\xbe\xc2\x87\xc3\xb0#f&\\K\xc2\xa2ij\xc2\x9ct\\g\xc3\xa18&%o\xc3\x93C\x00\xc3\xad\xc3\xa1,\xc2\x8c\xc2\xba\xc3\xa1E\xc2\xaf\x03\x16\xc3\xa4\xc2\x84\x17\t\xc2\xa1\xc2\xba\xc2\x90\xc2\xa5\xc2\x98\x11\xc3\x8a"\xc2\xaf\xc2\x84\\i\xc2\xa6\x0b\xc2\x8d\x15\xc2\x91TJ\xc3\xab\xc2\x8d\xc2\x8f\xc3\x9f\xc3\xa9\xc3\xa8V]\xc3\x97-uL\x12\xc2\xa4\xc2\x9am1\xc3\x92D\xc3\xaa/\xc3\x98\xc3\x8f\xc3\x95)\xc3\x97,\xc3\xbbw5\x16\n!p-\xc3\x90B\xc2\x93\xc2\xac#\x14\xc2\xaa\xc3\xb2\xc2\xb8-\xc2\xbf.3\xc3\x9b\xc3\xab\xc3\x8f<Gd\xc3\x894\xc2\xa9L\xc2\x98\\\x13\xc2\x9d28X\xc2\x90\x10\xc3\x8a\xc2\x8eI\xc3\xbd\xc2\x84\xc2\x92\xc2\xa8vD\xc2\xb3JDS!\xc2\xb2\xc3\xbf\xc3\x8e\xc3\xae\xc2\xa8\xc2\x90\xc2\x84\xc2\xb3J[d\x19R-QWn\xc2\xb02B\xc2\xa4)\xc3\xbe\x7f\xc2\xac;D\xc2\x97\n}\xc2\x9f\xc3\xad>\xc2\x89\xc3\x93=\xc2\xa9\xc2\x8c$\xc2\x89Q\xc2\xa5\xc2\xbf\xc2\x95t\xc2\x80\xc3\x83\xc3\xa1\xc3\xb0\xc3\x83\x02.\xc3\xb8D\x12\xc2\xae\x12\xc2\x94f\xc3\x87@\x00Z\x16f\xc2\xa8\xc2\xb5Y0\xc2\x9f\xc2\x96\xc3\x86\xc2\xad"\x11[qb\xc2\xac4K\x0e\xc3\x8a\x1dC4\xc3\x86\xc2\xbfN\xc2\xbfq\xc3\xac\xc2\xa8.-s\xc3\x93G\xc2\x9d\xc2\x8a\xc2\x9f\xc3\xbb\xc2\x86\xc2\xbd\xc2\x99^>2*\xc3\xa4\xc2\xba\xc2\xb4\x07\xc2\x88R&\xc2\x8e\xc3\xaf`\x0b\x1ewF>\xc3\x9c_\xc2\xa7\xc3\x8b+\xc3\x8a\xc2\x86\xc3\xacz<}\t\xc2\x9d\x01\x0bU\xc2\x98\xc2\x87\xc3\xae\xc2\xa0\x1d6\x16\xc3\xb9\xc2\xa5\xc2\xa2\xc3\xaeT\xc2\x85\xc3\xb9`O\xc3\xae\xc3\x87l\xc2\x98)6\x7f\xc2\x9c\xc3\x9ba\xc3\xa6\xc2\xb4\xc2\xaa\xc3\x95\xc2\xae\xc3\x9a4\xc3\xb8\x00y\xc3\xabeY\xc2\x9b\xc3\xa9\xc2\x99\xc3\x9c\xc2\xbaw\xc3\xa3\xc2\xab\xc3\xb0E\xc3\x93l>\xc2\xa6Y4\xc2\xbe\x15\xc3\xb3\x1eN\x16\x17\xc3\xb5\xc2\xbe\xc3\xbf\xc3\xa8D=1\xc2\x8c\xc3\xb8\xc3\x90\x11\xc2\x8b\xc3\x99\xc3\x96\xc3\x8b\xc2\x9f\xc3\xb2n\xc2\x9fN\xc3\xacfm\xc2\xb4f\xc3\x9d\xc3\xa2Ye\xc3\x8e\xc2\x9a8q\xc3\xbd\xc2\x8a7\xc3\x84\xc2\xb5?\xc3\x9d\xc3\x84x6\xc2\x9b\xc2\x8c\xc3\xa6\xc3\x85\xc2\xa2\xc3\x8b\xc2\x9e\xc2\x87\xc2\x8e\xc3\x9f\xc2\xbc|\xc2\xbe\xc3\x9cm\xc3\xa2\xc2\x8b\x19\xc3\xa6\xc3\x89\xc3\x9dK\xc2\xba\xc2\xb8q\xc3\x89no7\xc3\x9c:\xc2\xb9\x1fz\xc3\xb3\xc2\xb0\xc3\x95\xc3\x8c\xc3\xa5\xc3\x8bx\xc3\xa0\xc3\x9d\xc3\xaf\x1f\xc2\x84\xc2\x9d.\xc3\xb4]\xc2\x83\\r{\xc2\x92\xc3\x9e\xc2\xa5\xc2\xb7E3\xc3\x9f\xc2\xad\xc2\x99-\xc2\x9f\xc3\xa4\xc3\x9d\xc3\xad0\xc3\xac\xc3\x91\xc2\x87h\xc2\xaa\xc3\xb7\xc2\xad\r\x1fv\xc3\xb0<z\xc2\x9c\xc3\x87\xc3\xb5eQ\xc3\x9c\xc2\x9d\xc3\xb7Z[}\xc3\xa3\xc3\xb7{\xc3\x85m[\xc3\x8d\xc3\x86\xc3\x91P=\xc2\xac\x1a\xc3\xad\xc3\xb9\xc3\x96\xc2\xaf\xc3\xa9\xc3\xb3\xc2\xa6\xc3\x9e\xc3\x98\xc2\xbb\ro\xc2\xb5\xc2\x9ennpy6~(\n\xc3\xa6\xc2\xb5\xc3\xa3Q=Zgu\xc3\xa7eR\xc3\x90\xc2\x93\xc3\xb3\xc3\xbe6;y\xc2\xb8\xc3\xa9\xc3\x8d/6+\xc2\xb7\xc2\xa3\xc3\xa3\xc3\x9cn?/\xc3\xbd\xc3\xa1<\xc2\xbd\xc3\x9c\xc2\xb3\xc3\xb9=\xc2\xbd~\xc3\xacy\xc3\xaet\x1aw\xc3\xaad?+\xc2\xa6\xc2\x99\xc2\x87\xc3\xb6D$\xc2\xb55\xc2\x9d5\xc2\x8a\xc2\xae\xc3\xae.g\xc2\xb5\xc3\x89\xc3\xb4\xc2\xac\xc3\xaf\xc2\x9f\x0c\xc3\x8f\xc3\xb5|~>Y\xc3\x81\xc3\xa1\xc3\xb0O\x00\x00\x00\xc3\xbf\xc3\xbfPK\x07\x08\xc3\x83\xc3\xbc\xc3\x8b!\xc3\xaf\x03\x00\x00\t\x07\x00\x00PK\x01\x02\x14\x00\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\xc3\x83\xc3\xbc\xc3\x8b!\xc3\xaf\x03\x00\x00\t\x07\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00certificate.jsonPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00>\x00\x00\x00-\x04\x00\x00\x00\x00'
MayankFawkes commented 2 years ago

i would be lucky if you can tell me what wrong i am doing, for me nor first or second is unzipable. here is how i am installing image

from pyzbar.pyzbar import decode
from PIL import Image
import io
import zipfile, zlib
import base64

image = Image.open('qr.png')
data = decode(image, binary=True)
binary = data[0].data
d = zipfile.ZipFile(io.BytesIO(binary))
print(d.namelist())

Error

zipfile.BadZipFile: Bad magic number for central directory
[Finished in 281ms with exit code 1]

my binary data for your First (works)

b'PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00certificate.json\xc2\x8cT\xc3\x9br\xc3\xaa8\x10\xc3\xbc\x15j\x1e\xc2\xb7\x1c\xc3\xa2\x0b`\xc3\xb0\xc3\x8bn\x02Ip\xc3\x825\x06\x12\xc3\x98:\xc2\x95\x12\xc3\xb2\x18+\xc2\xb1%\xc2\x90d\x08I\xc3\xb1\xc3\xaf[29\xc2\xb9l\xc2\x9d\xc3\xac\x1e\xc3\x9e\xc2\xa4\xc3\xa9i\r\xc3\x9d\xc3\xady\xc2\x85\xc2\xbf\xc2\xa8\xc3\xa0\x1a\xc2\x9f5\x04\x7fC\xc2\xaa\xc3\xb5Z\x05\xc2\xa7\xc2\xa7\xc2\xbb\xc3\x9d\xc2\xae\xc2\xba\xc3\xb3\xc2\xaaB\xc2\xaeN]\xc3\x9bi\xc2\x9eR\xc2\x891r\xc3\x8dH\xc2\xa6N\xc2\xb7\x0eX\xc3\xaf@*v\xc2\x8cWWb[e\xc3\xbc+\xc2\x8aP\xc3\x8a8\xc3\x91Lp\xc3\x93\xc3\xb1\xc3\x83\x02\xc2\xbd_\xc2\xa3yc\xc2\x86\xc2\x92%\xc2\x8c,3l\xc2\xbf\xc3\xa3\xc3\x81\xc2\x82\xc2\x91\x14"\x19&\xc2\xb3\xc2\x8f\xc2\xbeO\xc3\xa5\x1f\x16|\xc2\x90G\xc3\x85\xc3\xb2\x11\xc2\xa9\xc2\x86\xc3\xa0\xc3\xb5\xc2\x8d\x13F(\xc2\x95\xc3\xa0`\x01\xc2\x8b!\xc2\x80\xc2\x98\xc3\x85\xc3\x81\x19\xc2\x89SBd\xc2\xa5Md\x1c\xc3\xbc\xc3\xb1\xc3\xb6\xc3\xb3\xc2\x9bu\x0f,\xc2\x90\xc2\x98\xc2\x84\x06\xc3\xa7\xc3\x9a^\xc3\x9dnx\xc2\x8e\xc3\xad\xc3\xb9\r\xc2\xbb\x01\x16p\xc2\x92\x1b\xc2\xb6\x01bF\xc3\xb2\xc3\x8aU\xc2\xb1\xc3\x96\x04,(\xc3\x92\xc2\x92\x15,X!\xc2\x8fQB\x00\xc2\x97\xc2\x98\xc2\x93\x0c\xc3\x81\x02\xc2\xb22\r5\xc2\xbfl63\xc2\x93\xc2\x8c\xc3\xa9=\x04\x10\xc3\xb2\xc2\x98\x113\x11\xc2\x89c\xc2\x89J\xc2\x99a\xc2\x95\xc2\x96\xc2\x88\xc3\xba\xc3\xac\xc3\xa7\xc2\x85a\xc3\xbcr\xc3\xa5\x1e\xc3\xafb\xc2\xa6\xc2\xb4d\xc3\xa6\xc3\xbf\xc2\x99\x13=\xc3\xb2}0\xc3\x9d\xc3\xa2\xc2\x8a\t\xc3\xbe\xc3\xa5\xc2\xaa-\n\xc2\xaee\xc3\xb9\xc3\xac\x00,X\x0b\xc2\xa5I\xc3\x96\x161BP\xc3\xb3\xc3\xab\xc2\x8d\xc2\x86s8X\xc3\x80\xc2\x94*\xc3\x8a\xc3\xa1\x7fi\x1d\x1c\x01\xc2\x84S\xc3\xac\x10\xc2\x8d\xc2\xa5:\xc2\xaesb\xc3\xbb\'\xc2\xb63\xc2\xb1[\xc2\x81c\x075\xc2\xaf\xc3\xaa\xc3\x94[\x0b\xc2\xb0\x00\xc2\xb7,FN\xc2\x8d\xc2\x9b\xc2\xafG\xc3\x89\x7f\xc3\x89y\xc2\x8c\x00\xc2\x9e\xc3\xbav\xc3\x9dn\xc3\xb9\xc2\x9e\xc3\xa79&9\tb\xc2\xbc$\xc3\xb4i*\xc2\xb3\xc3\xaf\x1a\xc3\xbf\xc3\xbc\xc3\x9a\xc3\x81x"~\x1fMQj\xc2\x960J4\xc2\x96.\x7f\xc2\xad\xc2\xbe\xc2\x87\xc3\xb0#f&\\K\xc2\xa2ij\xc2\x9ct\\g\xc3\xa18&%o\xc3\x93C\x00\xc3\xad\xc3\xa1,\xc2\x8c\xc2\xba\xc3\xa1E\xc2\xaf\x03\x16\xc3\xa4\xc2\x84\x17\t\xc2\xa1\xc2\xba\xc2\x90\xc2\xa5\xc2\x98\x11\xc3\x8a"\xc2\xaf\xc2\x84\\i\xc2\xa6\x0b\xc2\x8d\x15\xc2\x91TJ\xc3\xab\xc2\x8d\xc2\x8f\xc3\x9f\xc3\xa9\xc3\xa8V]\xc3\x97-uL\x12\xc2\xa4\xc2\x9am1\xc3\x92D\xc3\xaa/\xc3\x98\xc3\x8f\xc3\x95)\xc3\x97,\xc3\xbbw5\x16\n!p-\xc3\x90B\xc2\x93\xc2\xac#\x14\xc2\xaa\xc3\xb2\xc2\xb8-\xc2\xbf.3\xc3\x9b\xc3\xab\xc3\x8f<Gd\xc3\x894\xc2\xa9L\xc2\x98\\\x13\xc2\x9d28X\xc2\x90\x10\xc3\x8a\xc2\x8eI\xc3\xbd\xc2\x84\xc2\x92\xc2\xa8vD\xc2\xb3JDS!\xc2\xb2\xc3\xbf\xc3\x8e\xc3\xae\xc2\xa8\xc2\x90\xc2\x84\xc2\xb3J[d\x19R-QWn\xc2\xb02B\xc2\xa4)\xc3\xbe\x7f\xc2\xac;D\xc2\x97\n}\xc2\x9f\xc3\xad>\xc2\x89\xc3\x93=\xc2\xa9\xc2\x8c$\xc2\x89Q\xc2\xa5\xc2\xbf\xc2\x95t\xc2\x80\xc3\x83\xc3\xa1\xc3\xb0\xc3\x83\x02.\xc3\xb8D\x12\xc2\xae\x12\xc2\x94f\xc3\x87@\x00Z\x16f\xc2\xa8\xc2\xb5Y0\xc2\x9f\xc2\x96\xc3\x86\xc2\xad"\x11[qb\xc2\xac4K\x0e\xc3\x8a\x1dC4\xc3\x86\xc2\xbfN\xc2\xbfq\xc3\xac\xc2\xa8.-s\xc3\x93G\xc2\x9d\xc2\x8a\xc2\x9f\xc3\xbb\xc2\x86\xc2\xbd\xc2\x99^>2*\xc3\xa4\xc2\xba\xc2\xb4\x07\xc2\x88R&\xc2\x8e\xc3\xaf`\x0b\x1ewF>\xc3\x9c_\xc2\xa7\xc3\x8b+\xc3\x8a\xc2\x86\xc3\xacz<}\t\xc2\x9d\x01\x0bU\xc2\x98\xc2\x87\xc3\xae\xc2\xa0\x1d6\x16\xc3\xb9\xc2\xa5\xc2\xa2\xc3\xaeT\xc2\x85\xc3\xb9`O\xc3\xae\xc3\x87l\xc2\x98)6\x7f\xc2\x9c\xc3\x9ba\xc3\xa6\xc2\xb4\xc2\xaa\xc3\x95\xc2\xae\xc3\x9a4\xc3\xb8\x00y\xc3\xabeY\xc2\x9b\xc3\xa9\xc2\x99\xc3\x9c\xc2\xbaw\xc3\xa3\xc2\xab\xc3\xb0E\xc3\x93l>\xc2\xa6Y4\xc2\xbe\x15\xc3\xb3\x1eN\x16\x17\xc3\xb5\xc2\xbe\xc3\xbf\xc3\xa8D=1\xc2\x8c\xc3\xb8\xc3\x90\x11\xc2\x8b\xc3\x99\xc3\x96\xc3\x8b\xc2\x9f\xc3\xb2n\xc2\x9fN\xc3\xacfm\xc2\xb4f\xc3\x9d\xc3\xa2Ye\xc3\x8e\xc2\x9a8q\xc3\xbd\xc2\x8a7\xc3\x84\xc2\xb5?\xc3\x9d\xc3\x84x6\xc2\x9b\xc2\x8c\xc3\xa6\xc3\x85\xc2\xa2\xc3\x8b\xc2\x9e\xc2\x87\xc2\x8e\xc3\x9f\xc2\xbc|\xc2\xbe\xc3\x9cm\xc3\xa2\xc2\x8b\x19\xc3\xa6\xc3\x89\xc3\x9dK\xc2\xba\xc2\xb8q\xc3\x89no7\xc3\x9c:\xc2\xb9\x1fz\xc3\xb3\xc2\xb0\xc3\x95\xc3\x8c\xc3\xa5\xc3\x8bx\xc3\xa0\xc3\x9d\xc3\xaf\x1f\xc2\x84\xc2\x9d.\xc3\xb4]\xc2\x83\\r{\xc2\x92\xc3\x9e\xc2\xa5\xc2\xb7E3\xc3\x9f\xc2\xad\xc2\x99-\xc2\x9f\xc3\xa4\xc3\x9d\xc3\xad0\xc3\xac\xc3\x91\xc2\x87h\xc2\xaa\xc3\xb7\xc2\xad\r\x1fv\xc3\xb0<z\xc2\x9c\xc3\x87\xc3\xb5eQ\xc3\x9c\xc2\x9d\xc3\xb7Z[}\xc3\xa3\xc3\xb7{\xc3\x85m[\xc3\x8d\xc3\x86\xc3\x91P=\xc2\xac\x1a\xc3\xad\xc3\xb9\xc3\x96\xc2\xaf\xc3\xa9\xc3\xb3\xc2\xa6\xc3\x9e\xc3\x98\xc2\xbb\ro\xc2\xb5\xc2\x9ennpy6~(\n\xc3\xa6\xc2\xb5\xc3\xa3Q=Zgu\xc3\xa7eR\xc3\x90\xc2\x93\xc3\xb3\xc3\xbe6;y\xc2\xb8\xc3\xa9\xc3\x8d/6+\xc2\xb7\xc2\xa3\xc3\xa3\xc3\x9cn?/\xc3\xbd\xc3\xa1<\xc2\xbd\xc3\x9c\xc2\xb3\xc3\xb9=\xc2\xbd~\xc3\xacy\xc3\xaet\x1aw\xc3\xaad?+\xc2\xa6\xc2\x99\xc2\x87\xc3\xb6D$\xc2\xb55\xc2\x9d5\xc2\x8a\xc2\xae\xc3\xae.g\xc2\xb5\xc3\x89\xc3\xb4\xc2\xac\xc3\xaf\xc2\x9f\x0c\xc3\x8f\xc3\xb5|~>Y\xc3\x81\xc3\xa1\xc3\xb0O\x00\x00\x00\xc3\xbf\xc3\xbfPK\x07\x08\xc3\x83\xc3\xbc\xc3\x8b!\xc3\xaf\x03\x00\x00\t\x07\x00\x00PK\x01\x02\x14\x00\x14\x00\x08\x00\x08\x00\x00\x00\x00\x00\xc3\x83\xc3\xbc\xc3\x8b!\xc3\xaf\x03\x00\x00\t\x07\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00certificate.jsonPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00>\x00\x00\x00-\x04\x00\x00\x00\x00'

Which is different from you.

nmccann commented 2 years ago

Something I missed is that in addition to the fork, you need to have at least v0.23.1 of ZBar which adds support for binary QR codes (pyzbar just wraps ZBar). See the release notes for that version here: https://github.com/mchehab/zbar/releases/tag/0.23.1

There have been other versions released since then, but I don’t think they’re specifically needed for this.

MayankFawkes commented 2 years ago

Yeah it worked after installing latest binary of zbar. Thanks