python生成二维码(二)

2023-09-21 16:51:27 浏览数 (2)

image.png

上一节,掌握了一些理论知识,下面开始实战.

qrcode库

qrcode库使用创建二维码的库.官网

代码语言:javascript复制
pip install qrcode
pip install Image

使用qrcode库要依赖Image库

简单使用

代码语言:javascript复制
import qrcode
img = qrcode.make('http://www.baidu.com')
img.show()

使用效果:

更多控制使用

官网例子:

代码语言:javascript复制
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个常量:

  1. ERROR_CORRECT_L 7%以下的错误会被纠正
  2. ERROR_CORRECT_M (default) 15%以下的错误会被纠正
  3. ERROR_CORRECT_Q 25 %以下的错误会被纠正
  4. ERROR_CORRECT_H. 30%以下的错误会被纠正

boxsize: 每个点(方块)中的像素个数 border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4

运行效果:

image.png

制作一个带头像的

代码语言:javascript复制
#!/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

参考

用Python的qrcode包来生成二维码很简单 python 生成二维码并添加头像

0 人点赞