2015-11-10 2 views
0

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

Маска Я использую это один: enter image description here

Когда я объединить его со случайной картинки из межсетях (this one to be exact), я получаю это в результате: enter image description here

белый граница, окружающая изображение, находится в другой папке из рабочей и никогда не ссылается на мой код. enter image description here

У меня нет земной идеи о том, как Подушка получает белую границу. Это очень неприятно. Кто-нибудь знает, почему это происходит?

Для справки, вот код, а также:

from PIL import Image 

def Blend_Pic(): 
    background = Image.open("bg.png") 
    mask = Image.open("mask2.png").convert("L") 
    foreground = Image.open("fg.png") 

    background.paste(foreground, (0, 0), mask) 
    background.show() 

if __name__ == "__main__": 
    Blend_Pic() 

фон просто пустой 1600x900 PNG, а на переднем плане является случайным изображение от Google.

Редактировать: Изменение маски как простого прямоугольника дало те же результаты, поэтому изменение маски не помогло.

+0

Ответ очевиден: код, который, как вы думаете, вы используете, вы показываете здесь, это * не * код, который вы фактически используете. Либо это, либо 'fg.png' уже содержит границу с более раннего шага. –

+0

У меня определенно работает правильный код, и изображение переднего плана явно не видно. Я несколько раз менял рабочий каталог, чтобы убедиться, что у меня есть правильный код, и я повторно загрузил передний план из google, все еще та же проблема. – watswat5

+0

Поместите полный путь в вызов 'open', чтобы убедиться, что вы получаете правильный файл. И поставьте «показ» на изображении сразу после того, как вы откроете его, чтобы сделать втроем уверенным. –

ответ

0

После восстановления нового фонового изображения таинственная граница ушла. Несмотря на то, что Gimp не показывал ничего присутствующего, исходное фоновое изображение имело границу, скрытую каким-то альфа-обманом или чем-то еще.

Смежные вопросы