python二维码生成器

作者: 小安静子 | 来源:发表于2017-09-07 11:12 被阅读222次

    现在,我们生活中到处可以看到二维码。
    它有啥好处呢?
    它具有信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。

    我们生成的东西一般都在电脑上。如果弄到移动设备上,用到最多的是扫码。
    在移动设备浏览器中输入URL明显没有扫描二维码方便。

    就是这个:


    Screen Shot 2017-08-25 at 4.25.29 PM.png

    python 有qrcode库,很容易就生成二维码。
    现在在需要使用Python图像库的时候一般是用 Pillow 模块代替PIL。安装非常简单:

    pip install pillow
    

    安装 qrcode 也是类似:

    pip install qrcode
    

    在Python中也可以用如下的方式快速生成:

    import qrcode
    img = qrcode.make('Some data here')
    

    更高级一些的设置需要在Python中引入QRCode类:
    示例代码1:

    import qrcode
    
    qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=1)
    qr.add_data(""python爱好部落 snake"")
    qr.make(fit=True)
    img = qr.make_image()
    img.save("snake_qrcode.png")
    

    生成的结果为:

    snake_qrcode.png

    微信扫描的结果是:

    weichat.png

    参数 version 表示生成二维码的尺寸大小,取值范围是 1 至 40,最小尺寸 1 会生成 21 * 21 的二维码矩阵,version 每增加 1,生成的二维码就会添加 4 个单位大小,例如 version 是 2,则生成 25 * 25 尺寸大小的二维码。
    参数 error_correction 指定二维码的容错系数,分别有以下4个系数:
    ERROR_CORRECT_L: 7%的字码可被容错
    ERROR_CORRECT_M: 15%的字码可被容错
    ERROR_CORRECT_Q: 25%的字码可被容错
    ERROR_CORRECT_H: 30%的字码可被容错

    参数 box_size 表示二维码里每个格子的像素大小。
    参数 border 表示边框的格子宽度是多少(默认是4)。
    示例代码2(生成带有图标的二维码):

    import qrcode
    from PIL import Image
    
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=10,
        border=1
    )
    qr.add_data("python爱好部落, python爱好者的家园")
    qr.make(fit=True)
    img = qr.make_image()
    
    img = img.convert("RGBA")
    img_w, img_h = img.size
    factor = 3
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    
    icon = Image.open("snake.png")
    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), icon)
    img.save("snake_love_qrcode.png")
    

    如此,就将以下图片


    snake.png

    生成二维码:


    snake_love_qrcode.png

    如果是下载URL,扫描后就可以直接下载了。
    放到jenkins上,每次生成的build,直接扫码就可以下载到手机上了。

    更多精彩,请关注微信公众号:python爱好部落

    相关文章

      网友评论

      • 889c3dd11c4c:我用代码把基因序列变成了二维码😁

      本文标题:python二维码生成器

      本文链接:https://www.haomeiwen.com/subject/mmaudxtx.html