python 生成二维码
#!/usr/bin/env python3 import sys import getopt import qrcode from PIL import Image def generate_qr_code_with_logo(domain_name): qr=qrcode.QRCode( version=2, #version为一个整数,范围1~40,作用表示二维码的大小 error_correction=qrcode.constants.ERROR_CORRECT_L, #error_correction容错率,挡出部分二维码还能识别,越高可以挡住部分越多,但数据量增加 ,四个等级:H,L,M,Q Q最高,可以挡住25% box_size=8, #box_size 每个格子里像素大小 border=2 #border 表示二维码距离图像外边框的距离 ) qr.add_data(domain_name) qr.make(fit=True) img=qr.make_image() #创建二维码图片 img=img.convert("RGBA") #图片转换为RGBA格式 icon=Image.open("./logo.png") img_w,img_h=img.size #返回二维码图片的大小 factor=4 size_w=int(img_w/factor) size_h=int(img_h/factor) icon_w,icon_h=icon.size if icon_w>size_w: icon_w=size_w if icon_h>size_h: icon_h=size_h icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS) w=int((img_w-icon_w)/2) h=int((img_h-icon_h)/2) img.paste(icon,(w,h)) img.save("./test.png") def generate_qr_code(domain_name): img=qrcode.make(domain_name) img.save("./test.png") def main(argv): print("----------------------------------------------------------------------") try: opts, args = getopt.getopt(argv, "a:f:r:m:d:") except getopt.GetoptError: print('no param marry') sys.exit(2) for opt, arg in opts: if opt == '-a': domain_name = arg generate_qr_code_with_logo(domain_name) elif opt == '-d': domain_name = arg generate_qr_code(domain_name) if __name__ == "__main__": main(sys.argv[1:])
如果需要传递多个参数,。。。
#!/usr/bin/env python3 import sys import getopt import qrcode from PIL import Image def generate_qr_code_with_logo(dir,dataset): qr=qrcode.QRCode( version=2, #version为一个整数,范围1~40,作用表示二维码的大小 error_correction=qrcode.constants.ERROR_CORRECT_L, #error_correction容错率,挡出部分二维码还能识别,越高可以挡住部分越多,但数据量增加 ,四个等级:H,L,M,Q Q最高,可以挡住25% box_size=8, #box_size 每个格子里像素大小 border=2 #border 表示二维码距离图像外边框的距离 ) url="http://www.baidu.com/?id=" + dir qr.add_data(url) qr.make(fit=True) img=qr.make_image() #创建二维码图片 img=img.convert("RGBA") #图片转换为RGBA格式 icon=Image.open("./logo.png") img_w,img_h=img.size #返回二维码图片的大小 factor=4 size_w=int(img_w/factor) size_h=int(img_h/factor) icon_w,icon_h=icon.size if icon_w>size_w: icon_w=size_w if icon_h>size_h: icon_h=size_h icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS) w=int((img_w-icon_w)/2) h=int((img_h-icon_h)/2) img.paste(icon,(w,h)) img.save("/aaa/" + dir + "/" + dataset + "/test.png") def generate_qr_code(dir,dataset): url="http://www.baidu.com/?id=" + dir img=qrcode.make(url) img.save("/aaa/" + dir + "/" + dataset + "/test.png") def main(argv1,argv2): generate_qr_code(argv1,argv2) if __name__ == "__main__": main(sys.argv[1],sys.argv[2])