如何用Python将CSV文本批量添加到对应TIF图片中?
批量给TIF图片添加CSV对应文本的Python实现
所需依赖
首先确保安装Pillow库,执行以下命令完成安装:
pip install pillow
实现步骤与代码
结合Python内置的csv模块和Pillow库,就能实现批量遍历CSV并处理图片的需求,代码如下:
import csv from PIL import Image, ImageDraw, ImageFont # 配置参数,请根据自身需求修改 FONT_PATH = "font.ttf" # 字体文件的路径 FONT_SIZE = 200 TEXT_POSITION = (15, 15) # 文本在图片上的坐标(x轴,y轴) TEXT_COLOR = (237, 230, 211) # 文本的RGB颜色值 CSV_FILE = "your_data.csv" # 你的CSV文件路径 # 可选设置:是否保存为新文件,设为False则直接覆盖原图片 SAVE_AS_NEW = True NEW_FILE_SUFFIX = "_text" # 新文件的后缀名 # 加载字体文件 try: title_font = ImageFont.truetype(FONT_PATH, FONT_SIZE) except IOError: print(f"无法加载字体文件 {FONT_PATH},请检查路径是否正确") exit() # 读取CSV并逐行处理图片 with open(CSV_FILE, newline='', encoding='utf-8') as csvfile: reader = csv.DictReader(csvfile) for row in reader: image_path = row['ImageFileName'] text_to_write = row['TextToWrite'] try: # 打开目标TIF图片 with Image.open(image_path) as my_image: # 创建可编辑的图片对象 image_editable = ImageDraw.Draw(my_image) # 在图片上添加指定文本 image_editable.text(TEXT_POSITION, text_to_write, TEXT_COLOR, font=title_font) # 确定最终保存路径 if SAVE_AS_NEW: # 拆分文件名和扩展名,添加后缀生成新路径 name_part, ext_part = image_path.rsplit('.', 1) save_path = f"{name_part}{NEW_FILE_SUFFIX}.{ext_part}" else: save_path = image_path # 保存修改后的图片 my_image.save(save_path) print(f"已完成处理:{save_path}") except FileNotFoundError: print(f"未找到图片文件:{image_path},跳过该行数据") except Exception as e: print(f"处理图片 {image_path} 时出错:{str(e)}")
注意事项
- 确保CSV文件的列名完全匹配代码中的
ImageFileName和TextToWrite,否则会出现读取失败的情况 - 若遇到无法处理的特殊格式TIF图片,可尝试在打开图片后添加
my_image.convert("RGB")转换为RGB模式再进行文本添加操作 - 字体路径务必准确,若系统无法识别指定字体,可更换为系统已安装字体的完整路径
内容的提问来源于stack exchange,提问作者user3745883
相关产品推荐
相关产品推荐

