python实现给图片文字,批量处理工牌!

214 阅读1分钟

效果展示

![](https://p6-tt-ipv6.byteimg.com/large/pgc-image/2ccbdb085e0547a1b24786c069b38ec8)
![](https://p1-tt-ipv6.byteimg.com/large/pgc-image/139f7a9412a443b3909355f84dc366a8)

一、前期准备

  1. 保存了员工信息的excel表格
  2. 空白的工牌原图
  3. 新建一个文件夹存放处理后的图片

二、实现步骤

  1. 读取表格各列的信息
  2. 打开工牌原图
  3. 添加文字
  4. 保存图片

三、代码

excel表格内容

![](https://p6-tt-ipv6.byteimg.com/large/pgc-image/eca19d6d3c3540d6ba576b82207fdd66)

导入要用到的库

from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
import openpyxl
1234

设置字体

font = ImageFont.truetype("C:\\Windows\\Fonts\\simhei.ttf",42)    #宋体
1

excel操作

mywb = openpyxl.load_workbook('1.xlsx') #读取excel文件
mysheet = mywb.get_sheet_by_name('Sheet1') #读取要用到的表格sheet1
12

按列读取表格

name = mysheet.cell(i,2).value  #第二列是姓名
number = mysheet.cell(i,1).value    #第一列是工号
postion = mysheet.cell(i, 4).value  #职位
time = mysheet.cell(i,3).value  #入职时间
1234

在图片上添加文字

imageFile = "1.jpg" #原图路径
img = Image.open(imageFile) #打开原图
draw = ImageDraw.Draw(img) #要对图像img操作首先要创建Draw对象
draw.text((335, 567), name, color, font=font) #用draw.text(坐标,文字,颜色,字体)
1234

保存图片

img.save("行政部\\"+name+".jpg")