Вставить изображение RBG без фона на другое изображение (PIL)

#python #python-3.x #python-imaging-library

#python #python-3.x #python-imaging-library

Вопрос:

Итак, мне нужно разместить изображение RGB (с прозрачным фоном) на фоновом изображении, но когда я пытаюсь опубликовать его с помощью image.paste(), я получаю прозрачный фон, через который я не вижу нужного фона. Что мне делать?

Спасибо!

Код (это просто так):

         skin = Image.open("./temp2.png")
        skin = skin.resize((148, 355))
        stats.paste(skin,(42,232))

        stats.save("temp.png")
 

Изображения:

Изображение, которое я хочу вставить

Фон, на который я хочу его вставить

Желаемый результат

Фактический результат (серый цвет прозрачный)

Комментарии:

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

2. @DNy Хорошо, готово.

Ответ №1:

Вы можете использовать alpha composite в PIL для вставки изображения и сохранения альфа-каналов для прозрачности.

 stats = Image.open("stats.png")
skin = Image.open("skin.png")
skin = skin.resize((148, 355))
stats.alpha_composite(skin,(42,232))

stats.save("temp.png")
 

Результирующее изображение:
введите описание изображения здесь