1. 第三方库准备
你需要2个第三方库:
segno 生成二维码的第三方库 安装命令:pip install segno
pillow 处理图像的一个Python第三方库 安装命令:pip install pillow
下载完成后,即可开始编写代码。
2. 字体文件准备
首先,你需要下载一个楷体字体文件,这里我找了一个网上的链接:www.diyiziti.com/Download/35…,下载完字体后,放入项目文件夹即可。
3. 编写代码
代码如下:
# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
import segno
# 获取人员信息
print("社区出入证二维码信息生成器")
ID = input("请输入ID:")
name = input("请输入姓名:")
sex = input("请输入性别:")
room_id = input("请输入门牌:")
qr_code_content = "ID:" + ID + \
"\n姓名:" + name + \
"\n性别:" + sex + \
"\n门牌:" + room_id
# 生成二维码
qr = segno.make(qr_code_content)
# 保存二维码
qr.save("qr.png")
# 制作出入证
# 创建一个新图像
# 尺寸 900 x 540
# 背景为白色(RGB值:255,255,255)
image = Image.new("RGB", (600, 300), (255, 255, 255))
# 创建新画布 准备绘制图片
draw = ImageDraw.Draw(image)
# 加载字体文件
font_path = "simka.ttf"
font_size_45 = ImageFont.truetype(font_path, size=45)
font_size_30 = ImageFont.truetype(font_path, size=30)
# 图片内显示文字的列表
show_content = [
"ID:" + ID,
"姓名:" + name,
"性别:" + sex,
"门牌:" + room_id,
]
# 小区名称显示
draw.text((160, 10), # 位置
text="幸福小区出入证", # 文本内容
font=font_size_45, # 字体
fill="#000000", # 颜色
direction=None) # 字体方向默认
# y坐标初始化
y = 90
# 遍历列表
for text in show_content:
draw.text((10, y),
text=text,
font=font_size_30,
fill="#000000",
direction=None)
y += 50
# 打开二维码图片
qr_image = Image.open("qr.png")
# 设置图片大小
qr_image = qr_image.resize((200, 200))
# 将二维码放置在出入证350,80的位置
image.paste(qr_image, (350, 80))
# 显示图片
image.show()
# 保存图片
image.save("output.png")
4. 结果展示
运行代码,按照提示输入:
请输入ID:1
请输入姓名:wangzirui
请输入性别:男
请输入门牌:3单元 501
当前目录下生成了2个图片文件,一个是二维码图片:
另一个是出入证图片:
近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地