如何在Python中清除我在图像上写的内容?

-1 投票
1 回答
36 浏览
提问于 2025-04-14 18:34

我有一段代码,可以在一张图片上写文字,然后生成新的图片。

counter = 0
for a, b, c, d, e in data_cap:
    # Add Text to an image
    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
    img.save(f"car{counter}.png")

这个代码的问题是,它会在生成的第一张图片上继续写东西。请问我该怎么做才能避免这种情况呢?

1 个回答

0

我在循环里加上了Image.open()这个函数来解决问题。现在代码看起来是这样的:

counter = 0
for a, b, c, d, e in data_cap:
    img = Image.open(r'path')
    draw = ImageDraw.Draw(img)
    draw.text((131, 45), f"{a}", font=myFont, fill=(255, 255, 255))
    draw.text((385.5, 45), f"{b}", font=myFont, fill=(255, 255, 255))
    draw.text((252.5, 121.5), f"{c}", font=myFontSmall, fill=(255, 255, 255))
    draw.text((362.9, 121.5), f"{d}", font=myFontSmall, fill=(255, 255, 255))
    draw.text((473.5, 121.5), f"{e}", font=myFontSmall, fill=(255, 255, 255))
    img.save(fr'path')
    counter += 1

撰写回答