• 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])
  • 相关阅读:
    day10 作业
    文件操作
    字符编码
    元组、字典、集合内置方法, 深浅拷贝
    day07作业
    一周总结
    mysql操作进阶
    mysql操作篇续
    mysql-操作篇
    mysql的安装
  • 原文地址:https://www.cnblogs.com/lwmp/p/7832730.html
Copyright © 2020-2023  润新知