You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何避免在同一张图片上重复写入文本?

解决图片文字叠加问题

问题根源在于你始终在同一个I1图片对象上执行文字写入操作,循环中的每一次修改都会直接累积到这个对象上,导致后续生成的图片都是在之前修改的基础上叠加内容。

解决思路很简单:每次循环时基于原始图片创建一个全新的副本,在副本上进行文字写入,这样每次处理都是从干净的原图开始。

修改后的代码示例:

counter = 0
# 预先加载原始图片,仅执行一次
original_image = Image.open("你的原始图片路径.png")
for a, b, c, d, e in data_cap:
    # 每次循环创建原始图片的副本,避免修改原对象
    I1 = original_image.copy()
    
    # 在副本上写入文字
    I1.text((269, 45), f"{a}", font=myFont, fill=(255, 255, 255))
    I1.text((524, 45), f"{b}", font=myFont, fill=(255, 255, 255))
    I1.text((390.5, 121.5), f"{c}", font=myFontSmall, fill=(255, 255, 255))
    I1.text((500.9, 121.5), f"{d}", font=myFontSmall, fill=(255, 255, 255))
    I1.text((610.5, 121.5), f"{e}", font=myFontSmall, fill=(255, 255, 255))
    
    counter += 1
    # 保存修改后的副本
    I1.save(f"car{counter}.png")

关键说明:

  • 提前加载原始图片,避免在循环内重复打开文件,提升执行效率
  • 用copy()方法创建独立副本,所有修改都只作用于当前循环的副本,原始图片始终保持初始状态
  • 注意保存的是当前循环修改后的I1对象,而非原始图片

内容的提问来源于stack exchange,提问作者GohanHango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:12:53