image.png
上一节,掌握了一些理论知识,下面开始实战.
qrcode库使用创建二维码的库.官网
pip install qrcode
pip install Image
使用qrcode库要依赖Image库
import qrcode
img = qrcode.make('http://www.baidu.com')
img.show()
使用效果:
官网例子:
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('曾经沧海难为水')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=True 参数即可。 error_correction: 二维码的纠错范围,可以选择4个常量:
boxsize: 每个点(方块)中的像素个数 border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4
运行效果:
image.png
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import qrcode
from PIL import Image
text = 'https://www.jianshu.com/u/3a1e20d421df'
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(text)
qr.make(fit=True)
img = qr.make_image(fill_color="#009696", back_color="white")
# 添加logo,打开logo照片
icon = Image.open('touxiang.jpg')
# 获取图片的宽高
img_w, img_h = img.size
# 参数设置logo的大小
factor = 6
size_w = int(img_w / factor)
size_h = int(img_h / factor)
icon_w, icon_h = icon.size
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
# 重新设置logo的尺寸
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
# 得到画图的x,y坐标,居中显示
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
# 贴logo照
img.paste(icon, (w, h), mask=None)
# img.save(fpath)
img.show()
运行结果:
image.png