Ich habe ein PNG-Bild als Hintergrund und ich möchte ein transparentes Netz zu diesem Hintergrund hinzufügen, aber das funktioniert nicht wie erwartet. Das Hintergrundbild wird an den Stellen transparent, an denen ich transparentes Netz anlege.Hintergrund mit transparentem Bild in PIL verschmelzen
ich tue:
from PIL import Image, ImageDraw
map_background = Image.open(MAP_BACKGROUND_FILE).convert('RGBA')
map_mesh = Image.new('RGBA', (width, height), (0, 0, 0, 0))
draw = ImageDraw.Draw(map_mesh)
# Create mesh using: draw.line([...], fill=(255, 255, 255, 50), width=1)
...
map_background.paste(map_mesh, (0, 0), map_mesh)
Aber das Ergebnis ist:
Sie können ein Schachbrettmuster sehen, wenn Sie genau hinschauen (in Grafikprogrammen wie kein Hintergrund verwendet). Transparente Linien machen die Hintergrundebene auch dort transparent, wo beide Ebenen zusammentreffen. Aber ich möchte nur die transparente Linie über dem Hintergrund hinzugefügt werden.
ich lösen kann es mit:
map_background.paste ((255,255,255), (0, 0), map_mesh)
aber als ich für verschiedene Linien unterschiedliche Farben verwenden, würde ich für machen müssen jede Farbe diesen Prozess. Wenn ich 100 Farben hätte, dann brauche ich 100 Schichten, was keine sehr gute Lösung ist.
Mögliche Duplikat http://stackoverflow.com/questions/5324647/how-to-merge-a-transparent-png-image-with-another-image-using- pil –