#python-3.x #python-imaging-library
#python-3.x #python-imaging-library
Вопрос:
У меня есть изображение в качестве шаблона, и я хочу написать на нем несколько разных имен из списка.
from PIL import ImageDraw
from PIL import Image
image = Image.open(path)
for name in list:
draw = ImageDraw.Draw(loaded_image)
draw.text(text)
image.save(my_path)
Проблема в том, что текст, нарисованный на сохраненных изображениях, продолжает оставаться, даже если они должны быть разными ссылками. Кто-нибудь знает, как сделать каждое изображение со своим собственным текстом?
Есть ли какой-либо ЧЕТКИЙ метод для самого изображения? Для запуска между чертежами?
Ответ №1:
Каждый раз, прежде чем писать на нем, делайте новую копию оригинала, вот так:
from PIL import Image, ImageDraw
# Open the image
im = Image.open('image.png')
# Make a list of the annotation texts
words = ['the', 'cat', 'sat', 'on', 'the', 'mat']
# Iterate over all annotations
for word in words:
# Take a clean copy of original image - the following line is the actual answer
clear = im.copy()
# Draw the text on the clean copy and save
draw = ImageDraw.Draw(clear)
draw.text((10,10), word)
clear.save(word '.png')
Комментарии:
1. Работает. Похоже, моя проблема при использовании этого подхода заключалась в том, что я использовал глобальный экземпляр вместо самой копии. Спасибо!