Hello!各位伙伴们好,今天给大家介绍一个二维码生成脚本。
现在二维码应用随处可见,生活中二维码可以说是无处不在了:加好友,付钱,扫个码。如果有自己的独特的专属二维码,则会让人眼前一亮,可能更容易让人记住你哦!
python生成二维码非常方便,本文就来讲解如何用python开发生成二维码。
在Python 中已经有大神写好了生成二维码的第三方库,所以我们不需要重复造轮子, 使用现成的库即可,如qrcode库。
只需在anaconda命令行工具执行如下安装命令即可
pip install qrcode
还不了解如何配置环境的伙伴可以回顾我Python环境配置系列的文章:
Python环境配置系列—第一篇:Anaconda使用指南
Python环境配置系列—第二篇:Pycharm与Anaconda的完美配合
Python环境配置系列—第三篇:pip国内源快速安装opencv,pyqt5,tensorflow等
#导入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')
上面的代码只能生成简单的二维码,若想要生成华丽高大上的二维码,就需要使用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()函数
生成结果:
老样子,如果有所收益的话,感谢关注,持续更新,大家一起学习进步!当前关注可领取200G的深度学习入门课程,并进入微信“AI交流群”一起交流进步!
文章首发于个人公众号:Python深度学习