• python二维码操作:QRCode和MyQR入门


    1、QRCode

    • QRCode最简单的使用
    import qrcode
    
    qrcode.make("第一个二维码").get_image().show()
    

    根据文本生成二维码并且直接显示。

    • 根据文本或URL生成二维码,保存到指定目录并显示二维码
    import qrcode
    import os
    
    text = input("请输入文本或者URL:")
    imgname = input("请输入生成二维码的名称:")
    img = qrcode.make(text)
    img.save(os.getcwd() + "/images/" + imgname + ".png")
    img.show()
    
    • 生成带logo的二维码
    from PIL import Image
    import qrcode, os
    
    def create_qrcode(url, qrcodename):
        qr = qrcode.QRCode(
            version=1,  # 设置容错率为最高
            error_correction=qrcode.ERROR_CORRECT_H,  # 用于控制二维码的错误纠正程度
            box_size=8,  # 控制二维码中每个格子的像素数,默认为10
            border=1,  # 二维码四周留白,包含的格子数,默认为4
        )
    
        qr.add_data(url)  # QRCode.add_data(data)函数添加数据
        qr.make(fit=True)  # QRCode.make(fit=True)函数生成图片
    
        img = qr.make_image()
        img = img.convert("RGBA")  # 二维码设为彩色
        logo = Image.open("images/logo.jpg")  # 传gif生成的二维码也是没有动态效果的
    
        w,h = img.size
        logo_w,logo_h = logo.size
        l_w = int((w - logo_w) / 2)
        l_h = int((h - logo_h) / 2)
        logo = logo.convert("RGBA")
        img.paste(logo, (l_w, l_h), logo)
        img.show()
        img.save(os.getcwd() + "/images/" + qrcodename + ".png", quality=100)
    
    def main():
        url = input("请输入文本或URL:")
        qrcodename = input("请输入生成二维码的名称:")
        create_qrcode(url,qrcodename)
    if __name__ == '__main__':
        main()
    

    注意:logo图不要太大,不然生成之后logo可能会挡住二维码的内容,导致扫不出来。

    2、MyQR

    • 通过myqr生成动态二维码
    from MyQR import myqr
    import os
    
    text = input("请输入文本或url:")
    save_name = input("请输入生成二维码的名称:")+".png"
    
    myqr.run(
        words=text, #在命令后输入链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件,默认命名为” qrcode.png“
        version=1,  #设置容错率为最高默认边长是取决于你输入的信息的长度和使用的纠错等级;而默认纠错等级是最高级的H
        level='H',  #控制纠错水平,范围是L、M、Q、H,从左到右依次升高
        picture="images/logo.jpg",  #用来将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
        colorized=True, #可以使产生的图片由黑白(False)变为彩色(True)的
        contrast=1.0, #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。
        brightness=1.0, #用来调节图片的亮度,其余用法和取值与 -con 相同
        save_name=save_name,    #控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ;
        save_dir=os.getcwd() + "/images/"
    )
    

    MyQR参数说明

    Positional parameter
       words: str
    Optional parameters
       version: int, from 1 to 40
       level: str, just one of ('L','M','Q','H')
       picutre: str, a filename of a image
       colorized: bool
       constrast: float
       brightness: float
       默认输出文件名是“ qrcode.png ",而默认存储位置是当前目录
       save_name: str, the output filename like 'example.png'
       save_dir: str, the output directory
    
  • 相关阅读:
    数据库-数据约束
    数据库-表2
    数据库-表
    MySQL入门
    记一次stm8l程序跑飞
    nRF24L01P的ShockBurst与Enhance ShockBurst
    电路板工艺中的NPTH和PTH
    nRF24L01P数据传输速率
    STM32F030-UART1_DMA使用提示
    Altium Designer 复制报错-奇怪的问题解决办法
  • 原文地址:https://www.cnblogs.com/jie-fang/p/10279436.html
Copyright © 2020-2023  润新知