def main():
import argparse
parser = argparse.ArgumentParser(description="Combine your QR code with custom picture")
parser.add_argument("image")
parser.add_argument("text", help="QRcode Text.")
parser.add_argument("-o", "--output", help="Name of output file.")
parser.add_argument("-v", "--version", type=int, help="QR version.In range of [1-40]")
parser.add_argument("-e", "--errorcorrect", choices={"L","M","Q","H"}, help="Error correct")
parser.add_argument("-b", "--brightness", type=float, help="Brightness enhance")
parser.add_argument("-c", "--contrast", type=float, help="Contrast enhance")
parser.add_argument("-C", "--colourful", action="store_true",help="colourful mode")
parser.add_argument("-r", "--rgba", nargs=4, metavar=('R','G','B','A'),type = int, help="color to replace black")
parser.add_argument("-p", "--pixelate", action="store_true",help="pixelate")
args = parser.parse_args()
img = args.image
txt = args.text
output = args.output if args.output else 'qr.png'
ec = qrcode.constants.ERROR_CORRECT_H
if args.errorcorrect:
ec_raw = args.errorcorrect
if ec_raw == 'L':
ec = qrcode.constants.ERROR_CORRECT_L
if ec_raw == 'M':
ec = qrcode.constants.ERROR_CORRECT_M
if ec_raw == 'Q':
ec = qrcode.constants.ERROR_CORRECT_Q
ver = 5
if args.version:
if args.version >= 1 and args.version <= 40:
ver = args.version
cont = args.contrast if args.contrast else 1.0
bri = args.brightness if args.brightness else 1.0
colr = True if args.colourful else False
pixelate = True if args.pixelate else False
if colr :
if args.rgba:
rgba = tuple(args.rgba)
else:
rgba = (0,0,0,255)
else:
rgba = (0,0,0,255)
frames = produce(txt,img,ver,ec,bri, cont ,colourful = colr,rgba=rgba,pixelate = pixelate)
if len(frames) == 1 or output.upper()[-3:] != "GIF":
frames[0].save(output)
elif len(frames) > 1:
frames[0].save(output,save_all=True,append_images=frames[1:],duration=100,optimize=True)