赵乾舟 发表于 2021-7-30 13:32:41

遍历所有图片,并在图片上加上文字(图片的名称)

from PIL import ImageFont
from PIL import Image
import os
from PIL import ImageDraw
name = []
path = []
for lujing,wenjianjia,wenjian in os.walk('D:\练习Python\新建文件夹'):
    for file in os.scandir(lujing):
      #print(file.name)
      name.append(file.name)
    #print(lujing)
      j = lujing + '\\'+file.name
      #print(j)
      path.append(j)
zidian = dict(zip(name,path))
#print(zidian)
for name,path in zidian.items():
    imageFile = path
    img = Image.open(imageFile)
    font = ImageFont.truetype("C:\Windows\Fonts\STZHONGS.TTF", 40)
    word = name
    width = img.width
    height = img.height
    #print(width,height)
    position = (100, height*0.6)
    color = (0,0,0)
    draw = ImageDraw.Draw(img)
    draw.text(position, word, color, font=font)
    # 保存图片
    img.save(imageFile)


赵乾舟 发表于 2021-7-30 13:33:26

目前来说,不能遍历子文件夹,以后有时间了再改进

赵乾舟 发表于 2021-7-30 13:47:48

包含子目录的版本代码:
from PIL import ImageFont
from PIL import Image
import os
from PIL import ImageDraw
name = []
path = []
for lujing,wenjianjia,wenjian in os.walk('D:\练习Python\新建文件夹'):
    for file in os.scandir(lujing):
      #print(file.name)
      if file.name.endswith('jpg'):

            name.append(file.name)
    #print(lujing)
      j = lujing + '\\'+file.name
      #print(j)
      if j.endswith('jpg'):
            path.append(j)
zidian = dict(zip(name,path))
#print(zidian)
for name,path in zidian.items():
    imageFile = path
    #print(name)
    #print(path)
    img = Image.open(imageFile)
    font = ImageFont.truetype("C:\Windows\Fonts\STZHONGS.TTF", 40)
    word = name
    width = img.width
    height = img.height
    #print(width,height)
    position = (100, 100)
    color = (255,0,0)
    draw = ImageDraw.Draw(img)
    draw.text(position, word, color, font=font)
    # 保存图片
    img.save(imageFile)



页: [1]
查看完整版本: 遍历所有图片,并在图片上加上文字(图片的名称)