ich suche verzweifelt nach einer Lösung in Python transparente PNG-Bilder übereinander zu legen. Ich habe mehrere alpha-transparente PNG-24 Bilder, aus denen ich dynamisch ein Bild zusammen bauen und speichern möchte. Das ganze hatte ich mir so vorgestellt, dass ich die einzelnen Bilder wie Ebenen in Photoshop & Co. übereinander legen kann.
Mit der paste()-Funktion der Image-Klasse habe ich das ganze auch annähernd so hinbekommen, jedoch mit einem kleinen Seiteneffekt:
Lege ich Bild A (teilweise transparent) über Bild B (solider Hintergrund, keine Transparenz), dann scheint das Gesamtbild an den Stellen durch, an denen Bild A eine Transparenz aufwies, d.h. die Bilder werden schon soweit übereinander gelegt, jedoch "radiert" die Transparenz von Bild A den Inhalt von Bild B aus. Ich will jedoch am Hintergrund nichts veränderm, lediglich Bild A "drüber legen".
Ich habe schon viel mit dem dritten Parameter (mask) der paste()-Funktion und mit der composite()-Funktion rumgespielt, erhielt jedoch nie den gewünschten Effekt. Ich würde mich sehr freuen, wenn mir jemand sagen kann wie das geht.
Code: Alles auswählen
canvas = Image.new('RGBA', (100,100), (0,0,0,0))
bgr = Image.new('RGB', (100,100), (255,0,0))
transp_layer = Image.open('alphatransparentesbild.png')
canvas.paste(bgr, (0,0))
canvas.paste(transp_layer, (0,0), transp_layer)
canvas.save(...)
JM