最近参加了老男孩的一个python训练营,里面某项任务是要求在某个海报模板上批量添加姓名和二维码,生成类似下图的海报。
图中我用红色方框标记的是需要修改的地方,先来聊下自己的思路:
1.要进行图片操作,要用到pillow模块,可以直接进行文字的添加和图片的合成
2.生成二维码可以用qrcode模块
3.比较麻烦和没有头绪的是怎么去对文字定位,最后借助了PS,下文具体表述。
第一步:
因为自己会点PS,所以先对原图进行了修改,将二维码和姓名直接删掉,没有PS的小伙伴直接用手机上的软化也可以完成,之后保存为海报的模板文件,如下:
第二步,导入模块,第一行是与Pillow有关的模块,第二行是二维码的模块,至于os模块,后文表述
from PIL import Image, ImageDraw, ImageFont
import qrcode
import os
第三步,定义函数,进行图片操作,这里主要用到了打开图片文件、添加文字、保存文件等几个操作
def poster(path, str1):
'''
path:海报模板文件路径
添加的文字
'''
png1 = Image.open(path) #打开文件
draw = ImageDraw.Draw(png1)
font = ImageFont.truetype(r"C:\Windows\Fonts\STFANGSO.ttf", 40, encoding="utf-8") # 设置字体
draw.text((190, 300