Я пытаюсь скопировать текст и изображения на фоновое изображение с помощью библиотеки Python PIL. Я хочу добиться этого таким образом, чтобы новые изображения и текст не перекрывали друг друга и не касались границ, их нужно было отдельно размещать на одном фоновом изображении. Размер изображения и размер текста не имеет значения, он может быть любым, но его необходимо разместить внутри фонового изображения, должно быть минимум одно изображение и текст. сценарий, который я написал для достижения этой цели, как показано ниже
img = Image.open('imagefolder').resize((600,200))
b,l = img.size
width=20
height=20
while height<l-10:
hmax=0
width=10
select = random.choice([True,False])
ran_height = random.choice(range(5,55))
if select:
while width<b:
image_folder=random.choice(image_folders)
imagetemp=img.open(image_folder)
size_w,size_h=imagetemp.size
if size_h>hmax:
hmax=size_h
select_word = random.choice([True,False])
d.text([10,30], "hello", helvetica)
d.text([90,60], "python", helvetica)
if select_word:
if (width+size_w)<b-10 and (height+size_h)<l-10 :
(x, y) = (width, height)
image.paste(imagetemp,(x, y))
width = width+size_w+10
else:
height = height+hmax+10
break
else:
width =width+size_w+10
height = height+hmax+10
else:
height = height+ran_height+10
В этом коде
d.text ([10,30], "привет", helvetica)
d.text ([90,60], "python", helvetica)
печатает текст 'hello' и 'python' в координатах (10,30) и (90,60) соответственно. и
image.paste (imagetemp, (x, y))
печатает изображение в координатах (x, y)
Я хочу передать значение координаты для такого текста, чтобы оно не попадало под координаты изображения или тексты не перекрывались с изображением. например
изображение
Если я передаю значение координаты изображения
d.text ([x, y], "привет", helvetica)
тексты будут напечатаны внутри изображения, это не то, что я ищу, я хочу напечатать вне изображения. Дайте мне знать, если у вас есть какие-либо вопросы. Я искал в Интернете, я не нашел ни одного примера для этого, есть много примеров для копирования текста внутри изображения с использованием PIL, а не снаружи изображения. Любое предложение будет полезно спасибо.
** Исправлена ошибка с поиском размера текста
draw_txt.textsize (random_text, font = font) **