zoukankan      html  css  js  c++  java
  • 使用python3调用MyQR库生成动态二维码(附源代码)

     

    可生成普通二维码、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)。

    GitHub:https://github.com/sylnsfar/qrcode

    中文版:https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

    已封装成MyQR库,直接使用pip安装即可

    # 安装模块后
    from MyQR import myqr
    version, level, qr_name = myqr.run(
        words,
        version=1,
        level='H',
        picture=None,
        colorized=False,
        contrast=1.0,
        brightness=1.0,
        save_name=None,
        save_dir=os.getcwd()
        )

    参数介绍:

    # help(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
       save_name: str, the output filename like 'example.png'
       save_dir: str, the output directory

    words:字符串类型,链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件

    version:整型,控制边长,范围是1至40,数字越大边长越大

    level:字符串类型,控制纠错水平,范围是L、M、Q、H,从左到右依次升高

    picture:字符串类型,图片链接,支持png、jpg、bmp、gif(用gif格式的话,生成的二维码就是动态的

    colorized:布尔类型,True是彩色,False是黑白

    save_name:字符串类型,保存二维码图片的名字,需要写出图片类型。默认输出文件名是“ qrcode.png ",而默认存储位置是当前目录,重名会覆盖当前

    save_dir:字符串类型,保存二维码图片的路径

    constrast:浮点类型,调节生成图片的对比度,1.0表示与原图片一致,更小的值表示更低的对比度

    brightness:浮点类型,调节生成图片的亮度,用法与constrast一致

    源代码



    from MyQR import myqr
    import os

    #1、黑白、L,其他参数默认
    version, level, qr_name = myqr.run(
    words='https://github.com/sylnsfar/qrcode/blob/master/README-cn.md' ,
    version=1,
    level='L',
    picture='panda.png',
    colorized=False,
    contrast=1.0,
    brightness=1.0,
    save_name='1panda_noncolorized.png',
    save_dir=os.getcwd()
    )

    #2、彩色、L,其他参数默认
    version, level, qr_name = myqr.run(
    words='https://github.com/sylnsfar/qrcode/blob/master/README-cn.md' ,
    version=1,
    level='L',
    picture='panda.png',
    colorized=True,
    contrast=1.0,
    brightness=1.0,
    save_name='2panda_colorized.png',
    save_dir=os.getcwd()
    )

    #3、彩色、H,其他参数默认
    version, level, qr_name = myqr.run(
    words='https://github.com/sylnsfar/qrcode/blob/master/README-cn.md' ,
    version=1,
    level='H',
    picture='panda.png',
    colorized=True,
    contrast=1.0,
    brightness=1.0,
    save_name='3panda_colorized_H.png',
    save_dir=os.getcwd()
    )

    #4、彩色、H、40,其他参数默认
    version, level, qr_name = myqr.run(
    words='https://github.com/sylnsfar/qrcode/blob/master/README-cn.md' ,
    version=40,
    level='H',
    picture='panda.png',
    colorized=True,
    contrast=1.0,
    brightness=1.0,
    save_name='4panda_colorized_H_40.png',
    save_dir=os.getcwd()
    )

    #5、彩色、动态二维码,其他参数默认
    version, level, qr_name = myqr.run(
    words='https://github.com/sylnsfar/qrcode/blob/master/README-cn.md' ,
    version=1,
    level='L',
    picture='qb.gif',
    colorized=True,
    contrast=1.0,
    brightness=1.0,
    save_name='5qb.gif',
    save_dir=os.getcwd()
    )

    原始图片:panda.png,大小1213*1213

    结果(按顺序显示,未改显示图片的大小)

     

    有几个小问题:

    1. 原图本身是jpg格式,但是运行报错;将后缀改为png之后运行ok,原因暂时未知

    2.生成的二维码大小要适中,若version过大(例如本例中的第四张),手机需要距离一定的距离才能扫到,但是无法识别

    3.原图最好使用正方形图片

    
    
  • 相关阅读:
    HTTP方法(转)(学习基础)
    正则表达式 学习手记 111221
    原型模式 学习手记
    分布式事务 MSDTC配置
    Ibatis.Net 学习手记二 缓存
    IIS 7.0 部署MVC
    事务与分布式事务
    Ibatis+MVC 3.0 开发手记
    Ibatis.Net 学习手记一 简单的Demo
    简单工厂 学习手记
  • 原文地址:https://www.cnblogs.com/aby321/p/10065454.html
Copyright © 2011-2022 走看看