Как я могу поместить несколько изображений и текстов на фоновое изображение, используя Python PIL, чтобы тексты не перекрывались с изображением? - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь поместить несколько изображений и текстов поверх фонового изображения. Использование библиотеки изображений Python PIL. Количество изображений и печать текста не обязательно должны быть одинаковыми всегда. Печать текста и изображения должна быть отдельной. Текст должен быть напечатан снаружи везде, где ограничены рамки изображения. Я использую код ниже, чтобы это произошло

from PIL import Image
import os, random
with open('C:/Users/nike/Desktop/namelist.txt', "r") as word_list:
    words = list(word_list)
    k=[]
    for i in words:
        j = i.replace(' ','').replace('\n','')
        k.append(j)
folder=r"C:/Users/nike/Desktop/imagefolder"
a=random.choice(os.listdir(folder))
file = folder+'//'+a
random_text=random.choice(k)
img = Image.open(file)
img_w, img_h = img.size
background = Image.open('C:/Users/nike/Desktop/backgroundimages/back.jpeg','r')
bg_w, bg_h = background.size
offset = ((bg_w - img_w) // 2, (bg_h - img_h) // 2)
draw = ImageDraw.Draw(background)
background.paste(img, offset)
font = ImageFont.truetype("C:/Users/nike/Desktop/open-sans/abc.ttf", 16)
draw.text((0, 0),random_text,(255,255,255),font=font)
background.save('out.png')

Код выше печатает одно изображение в центре фонового изображения и текст в координате (0,0) фонового изображения. Как можно сделать несколько текстов и изображений для вставки на фоновые изображения, чтобы текст (x, y) не печатался на изображении (x, y). Любое предложение будет полезно. Пример: ожидаемый результат

на фоновом изображении мне нужно скопировать изображения и тексты так, чтобы они не перекрывали друг друга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...