当执行以下代码时,第一个输出文件可以正常工作,但是第二个输出文件则从列表中的第一项和第二项中提取文本。对于每次迭代,文本都会继续累积。但是,文件名很好,不会累积。

def write_text_to_image(names_list):
    from PIL import Image, ImageDraw, ImageFont
    image = Image.open("t.bmp")
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype('arial.ttf', 132)

    for name in names_list:
        draw.text((150, 905), name, font = font, fill = (0, 0, 0))
        image.save(name + ".bmp")

最佳答案

我回答了法比奥自己的想法对我有帮助的问题。我不得不在for循环中移动图像分配。

def write_text_to_image(names_list):
    from PIL import Image, ImageDraw, ImageFont
    font = ImageFont.truetype('arial.ttf', 132)

    for name in names_list:
        image = Image.open("t.bmp")
        draw = ImageDraw.Draw(image)
        draw.text((150, 905), name, font = font, fill = (0, 0, 0))
        image.save(name + ".bmp")

关于python - 在Python中使用ImageDraw.Draw(image)循环会导致覆盖文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40761545/

10-12 16:55
查看更多