Python番外篇:写一个小区出入证二维码生成器

hello,大家好,我是wangzirui32,今天我们来学习如何编写一个小区出入证生成器。
开始学习吧!(心急的小伙伴可以直接看结果和代码)

学习目录

  • 1. 第三方库准备
  • 2. 字体文件准备
  • 3. 编写代码
  • 4. 结果展示

1. 第三方库准备

你需要2个第三方库:

segno 生成二维码的第三方库 安装命令:pip install segno
pillow 处理图像的一个Python第三方库 安装命令:pip install pillow

下载完成后,即可开始编写代码。

2. 字体文件准备

首先,你需要下载一个楷体字体文件,这里我找了一个网上的链接:http://www.diyiziti.com/Download/353,下载完字体后,放入项目文件夹即可。

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番外篇:写一个小区出入证二维码生成器_第1张图片


好了,今天的课程就到这儿了,感谢大家能阅读完全文,你们如果喜欢可以点个赞和收藏,拜拜!

你可能感兴趣的:(Python,Python模块介绍使用,Python番外篇,python)