利用Python生成专属二维码

Hello!各位伙伴们好,今天给大家介绍一个二维码生成脚本。

现在二维码应用随处可见,生活中二维码可以说是无处不在了:加好友,付钱,扫个码。如果有自己的独特的专属二维码,则会让人眼前一亮,可能更容易让人记住你哦!

python生成二维码非常方便,本文就来讲解如何用python开发生成二维码。

1.1 安装环境库

在Python 中已经有大神写好了生成二维码的第三方库,所以我们不需要重复造轮子, 使用现成的库即可,如qrcode库。

只需在anaconda命令行工具执行如下安装命令即可

pip install qrcode

利用Python生成专属二维码_第1张图片
还不了解如何配置环境的伙伴可以回顾我Python环境配置系列的文章:

Python环境配置系列—第一篇:Anaconda使用指南

Python环境配置系列—第二篇:Pycharm与Anaconda的完美配合

Python环境配置系列—第三篇:pip国内源快速安装opencv,pyqt5,tensorflow等

1.2 首先生成一个简单的二维码

#导入qrcode库
import qrcode
#生成二维码就是调用这个库的 make 函数: 传入链接的url 或者文本均可
img = qrcode.make('https://mp.weixin.qq.com/s?__biz=MzAwOTc3NTg2MA==&mid=2247483770&idx=1&sn=2d7f284c15e05abb7566402a423e7bc7')  
img.save('res.png')  #保存二维码

上面两行可以合并为一行:

qrcode.make('Python深度学习').save('res2.png')

生成结果如下,完成可以扫描使用:
利用Python生成专属二维码_第2张图片

1.3 生成高级复杂的二维码

上面的代码只能生成简单的二维码,若想要生成华丽高大上的二维码,就需要使用qrcode库的高级用法了

# 带有logo图案的二维码
from PIL import Image
import qrcode

def main():
    # QRCode()这里我们创建了一个对象:
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
    # version:值为1~40的整数,控制二维码的大小(最小值是1,是个21×21的矩阵)
    # error_correction:控制二维码的错误纠正功能。可取值下列4个常量:
    '''
    qrcode.constants.ERROR_CORRECT_X:
        1. X=L时,大约7%或更少的错误能被纠正。
        2. X=M(默认)时,大约15%或更少的错误能被纠正。
        3. X=Q时,25%以下的错误会被纠正。
        4. X=H时,大约30%或更少的错误能被纠正。
    '''
    # box_size:控制二维码中每个小格子包含的像素数。
    # border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4)

    # 向二维码中添加信息
    qr.add_data("https://mp.weixin.qq.com/s?__biz=MzAwOTc3NTg2MA==&mid=2247483770&idx=1&sn=2d7f284c15e05abb7566402a423e7bc7")

    qr.make(fit=True)

    img = qr.make_image()
    # 二维码设置为彩色
    img = img.convert('RGBA')
    # 打开logo图片
    logo = Image.open("logo.png")
    # 二维码尺寸
    img_w, img_h = img.size
    # 默认LOGO最大设为图片的1/4
    factor = 3
    # 最大logo尺寸
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    # logo的尺寸
    logo_w, logo_h = logo.size

    if logo_w > size_w or logo_h > size_h:
        logo_w = size_w
        logo_h = size_h
    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS).convert('RGBA')
    l_w = int((img_w - logo_w) / 2)
    l_h = int((img_h - logo_h) / 2)
    # 替换指定位置
    img.paste(logo, (l_w, l_h), logo)
    img.show()
    img.save('2.png')


main()  # 调用main()函数

生成结果:
利用Python生成专属二维码_第3张图片
老样子,如果有所收益的话,感谢关注,持续更新,大家一起学习进步!当前关注可领取200G的深度学习入门课程,并进入微信“AI交流群”一起交流进步!

文章首发于个人公众号:Python深度学习

你可能感兴趣的:(python,开发语言,opencv)