17.7.3 定制的座位卡
from PIL import Image, ImageFont, ImageDraw
import os
os.chdir(r'#path') #路径
im = Image.new('RGBA',(360,288),'white')
fontFolder = r'C:\Windows\Fonts'
FontObj = ImageFont.truetype(os.path.join(fontFolder,'arial.ttf')\
,50) #创建字体的ImageFont对象
imgFile = os.makedirs('guestImg',exist_ok=True)
logo = Image.open('xxx.png')
qualSize = 80 #用参数方便调整花图案大小
width,height = logo.size
if width > height:
logo.resize((qualSize,int(qualSize*(height/width))))
else:
logo.resize((int((width/height)*qualSize),qualSize))
im.paste(logo,(260,100))
im.save('diagram.png')
im = Image.open('diagram.png')
file = open('guests.txt')
guestsList = file.readlines()
for name in guestsList:
name = name.strip('\n')
print('Creating the board of {}'.format(name))
newImg = im.copy() #复制得到一个新的Image对象
draw = ImageDraw.Draw(newImg) #创建ImageDraw对象
draw.line([(0,0),(0,287),(359,287),(359,0),(0,0)],fill='black') #画黑线
draw.text((20,100), name, fill='black',font=FontObj)
filename = '{}.png'.format(name)
newImg.save(os.path.join('guestImg',filename))
print('DONE')
总结:1.花案图片的大小要调合理
2.在给每个成员制作座位卡的时候,要在复制得到的新Image对象上进行。否则名字会重叠....
3.一段时间不练,写得有点乱......