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

问题描述 投票:0回答:1

我有这段代码,可以在图像上写入字符串,然后生成新图像。

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")

这段代码的问题是它写在生成的第一个图像之上。 我怎样才能防止这种情况发生?

python image for-loop text
1个回答
0
投票

我在 for 循环中包含了 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
© www.soinside.com 2019 - 2024. All rights reserved.