咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

Python生成二维码测试

一、生成二维码图片

1
2
3
4
5
import os
import qrcode # pip install qrcode

img = qrcode.make("https://kevinvane.github.io")
img.save('./qrcode_test1.png')

二、自定义参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import qrcode # pip install qrcode

# qrcode.constants.ERROR_CORRECT_* 参数:
# 1. X=L时,大约7%或更少的错误能被纠正。
# 2. X=M(默认)时,大约15%或更少的错误能被纠正。
# 3. X=Q时,25%以下的错误会被纠正。
# 4. X=H时,大约30%或更少的错误能被纠正。
#
# box_size 二维码图片大小
# border 边缘白色边框大小
qr = qrcode.QRCode(
version=5,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=8,
border=1)
qr.add_data("https://kevinvane.github.io")
qr.make(fit=True)
img = qr.make_image()
# 设定颜色
# img = qr.make_image(fill_color="red", back_color="yellow")
img.save('./qrcode_test2.png')


三、Pillow给图片增加文字标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
import qrcode # pip install qrcode
from PIL import ImageFont, ImageDraw, Image # pip install Pillow

text = "https://kevinvane.github.io"

# 保存的文件路径&名称
img_path = './qrcode_test3.png'
img_qr = qrcode.make(text)

# 注意:这里要指定真实的字体文件路径
font_pingfang = ImageFont.truetype("./font/pingfang.ttf", 22)
font_width, font_height = font_pingfang.getsize(text)

qr_width, qr_height = img_qr.size
image = Image.new(
mode="RGB",
size=(qr_width, qr_height + font_height),
color="white")
image.paste(img_qr)
img_qr.close()

draw = ImageDraw.Draw(image)

xy = ((qr_width - font_width)/2, qr_height - 20)
draw.text(xy, text, font=font_pingfang, fill=(0, 0, 0))
image.save(img_path)