帮助别人真快乐~
前几天临近过年,领导布置了一项任务:给市场同事发一张感谢信图片,里面包括同事姓名、入职时长、组织名称、活跃渠道数以及销售业绩。
这可把设计狮妹子愁坏了,算了算她得做几百张,用AI批量替换也需要不小的时间成本且怕有纰漏出现;
看着头疼的她,我放下手里的大宽表,看了几眼用python 批量添加文本的方法,看起来难度不高,那就搞一哈~
引用相关包
# Pillow库是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等;
from PIL import Image,ImageDraw,ImageFont
import pandas as pd
import xlrd
准备文件材料及设置
# 打开底图
im = Image.open(r'D:\xxx\xxx\xxx\xxx\设计底图.jpg')
# 打开数据集
data = pd.read_excel(r"D:\xxx\xxx\xxx\文本数据对应表.xlsx")
# 另存一张底图,这样不会影响原文件使用
im.save(r'D:\xxx\xxx\xxx\image.png')
# 设置字体,选择一个合适的字体及大小
ttfont = ImageFont.truetype('msyhbd.ttc',50)
经过一系列单元格测试写入位置合适后,实现多处循环写入如下
for index,value in data.iterrows():
image = Image.open(r'D:\xxx\xxx\xxx\image.png')
img_draw = ImageDraw.Draw(image)
# 写入位置1,180是横向偏移量,215是纵向偏移量,代表的是离图片右下角的像素点距离;
# str(value[xxx] 是字符化表格里的值,因为有的是整数类型,小数类型
# font 设置字体
# fill 设置线条颜色
img_draw.text((180,215),str(value[1]),font = ttfont)
img_draw.text((500,350),str(value[2]),font = ttfont)
img_draw.text((30,680),str(value[0]),font = ttfont,fill='#9B5728')
img_draw.text((410,760),str(value[4]),font = ttfont,fill='#9B5728')
img_draw.text((450,920),str(value[3]),font = ttfont,fill='#9B5728')
# 可展示一下,方便观测
image.show()
# 储存到相关位置并按相关信息命名
image.save(r'D:\xxx\xxx\xxx\test pic\{}{}.png'.format(value[0],value[1]))
搞定!~
设计狮妹子两眼泪汪汪呐,能回家过个好年了~
大家一起也试试吧!
参考学习网址:
侠客岛 Python批量处理图片