Создание круглых миниатюр в PIL на определенной позиции - PullRequest
0 голосов
/ 04 декабря 2018

Я работаю над файлом python, который приветствует пользователей на основе их фотографий в профиле + имени.Мне удалось поместить их имя в нужную область, но у меня возникли проблемы при вставке круглого изображения профиля в данном месте.

Вот как это должно выглядеть

input.png

Входное изображение профиля

profilepicture.png

Выход

output.png

1 Ответ

0 голосов
/ 04 декабря 2018

Ключевым моментом здесь является аргумент «маска» Image.paste - https://pillow.readthedocs.io/en/5.3.x/reference/Image.html#PIL.Image.Image.paste - «Если дана маска, этот метод обновляет только области, указанные маской.»

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

from PIL import Image, ImageDraw

background = Image.open('input.jpg')
im = Image.open('profilepicture.png')

# Scale the image to be the size of the circle
im = im.resize((1024, 1024), Image.ANTIALIAS)

# Create the circle mask
mask = Image.new('L', im.size)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + im.size, fill=255)

background.paste(im, (410, 1104), mask)
background.save('output.png')
...