WedX - журнал о программировании и компьютерных науках

Как вставить полупрозрачное изображение поверх обычного изображения и получить прозрачность PIL?

Итак, я пытаюсь вставить прозрачное изображение поверх обычного изображения. Но почему-то пропала прозрачность.

Есть ли способ сохранить прозрачность второго изображения (прозрачного) поверх первого изображения (обычного) без потери прозрачности второго изображения?

(Кстати, я новичок в PIL)

BG = Image.open("BGImage.png") # normal image, size is 1920x1080
BG = BG.convert("RGBA")
overlay = Image.open("OverlayImage.png") # transparent image, size is 1920x1080
overlay = overlay.convert("RGBA")

BG = Image.alpha_composite(BG, overlay) # I tried doing this but it didn't work

BG.save("NewImage.png")

Фоновое изображение: Фон

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

Что я получил: Что у меня есть

Что я хотел (небольшое изменение цвета): Что я хотел


  • Покажите, что у вас есть по сравнению с тем, что вы хотели 07.03.2021
  • @MadPhysicist Я сделал, как ты сказал 07.03.2021

Ответы:


1

Используйте paste следующим образом, убедившись, что ваше изображение не палеттизировано:

from PIL import Image

# Open background and foreground ensuring they are not palette images
bg = Image.open('bg.png').convert('RGB')
fg = Image.open('fg.png')

# Paste foreground onto background and save
bg.paste(fg,mask=fg)
bg.save('result.png')

введите здесь описание изображения

07.03.2021
  • это не сработало, я получил тот же результат, что и раньше 07.03.2021
  • Ммм, пожалуйста, поделитесь своими изображениями и объясните, что вы имеете в виду под не сработало. Спасибо. 07.03.2021
  • результат, который я получил, был таким же, как и предыдущий, наложение не было полупрозрачным 07.03.2021
  • Мне удалось это исправить, ваш ответ помог мне, но я также понял, что изображение по какой-то причине не было прозрачным (хотя я сохранил его с прозрачностью). В любом случае спасибо 07.03.2021
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]