Python - наложенный водяной знак - PullRequest
0 голосов
/ 12 мая 2018

В Python 3x моей целью является наложение изображения RGBA типа PIL (версия 5.1) на изображение в оттенках серого:

from PIL import Image

layer1 = Image.open("lena.jpg")  
layer2 = Image.open("watermark.png")              

canvas = Image.new("RGBA", layer1.size, (0,0,0,0))
canvas.paste(layer1)
canvas.paste(layer2, (int(layer1.width/2.2), int(layer1.height/1.8)), layer2)
canvas.show()

Похоже, это работает, но учитывается ли прозрачность A-канала? В этом случае layer2 (RGBA) всегда намного меньше, чем layer1 (оттенки серого).

Насколько я понимаю, использование метода вставки в более старых версиях PIL (версия 3.1) не учитывает альфа-канал, а более новый (версия 5) делает? из документов:

Если дана маска, этот метод обновляет только области, указанные маской. Вы можете использовать изображения «1», «L» или «RGBA» (в последнем случае альфа-полоса используется в качестве маски). Если маска 255, данное изображение копируется как есть. Если маска равна 0, текущее значение сохраняется. Промежуточные значения будут смешивать два изображения вместе, включая их альфа-каналы, если они есть.

enter image description here

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