/ / Wie Sie die Deckkraft eines Bildes ändern und mit einem anderen Bild in Python - Python, Python-Imaging-Library - zusammenführen

Wie man die Deckkraft des Bildes ändert und mit einem anderen Bild in Python - python, python-imaging-library zusammenführt

Ich habe nachgesehen, wie man zwei Bilder zusammenfügt und das obere auf etwa 50% transparent macht.

Bisher habe ich das gefunden:

from PIL import Image

def merge():
background = Image.open("ib.jpg")
background = background .convert("L") #only foreground color matters
foreground = Image.open("if.jpg")

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

Es wird jedoch nur ein leeres Bild ausgegeben.

Beide sind gleich groß.

ib.jpg:

ib.jpg

if.jpg:

if.jpg

gewünschte Ausgabe:

Bildbeschreibung hier eingeben

Irgendwelche Tipps, um dies entweder mit einer RGB- oder RGBA-Datei zu tun? Ich sollte mich mit beiden Typen befassen (einige haben sogar Alpha-Layer).

Vielen Dank,

Antworten:

4 für die Antwort № 1

Sie müssen verwenden blend Funktion von PIL.Image:

from PIL import Image
bg = Image.open("1.jpg")
fg = Image.open("2.jpg")
# set alpha to .7
Image.blend(bg, fg, .7).save("out.png")

Bildbeschreibung hier eingeben