Fallback to full size if data doesn't fit in micro QR code

live-update
missionfloyd 2023-06-08 21:44:40 -06:00
parent ea8a2b5ebc
commit 4e371da9e2
1 changed files with 5 additions and 2 deletions

View File

@ -25,8 +25,11 @@ def generate(selected_tab, keys, *values):
data = f'geo:{args["geo_latitude"]},{args["geo_longitude"]}'
else:
data = args["text"]
qrcode = segno.make(data, micro=args["micro"], error=args["error"], boost_error=args["boost_error"])
try:
qrcode = segno.make(data, micro=args["micro"], error=args["error"], boost_error=args["boost_error"])
except segno.encoder.DataOverflowError:
qrcode = segno.make(data, micro=False, error=args["error"], boost_error=args["boost_error"])
out = io.BytesIO()
qrcode.save(out, kind='png', scale=args["scale"], border=args["border"], dark=args["dark"], light=args["light"])
return Image.open(out)