/ / Python PIL schneidet Wörter aus, so dass es transparent wird PNG - Python, Bild, Python-Imaging-Bibliothek, transparent

Python PIL schneidet Wörter aus, so dass es transparent wird PNG - Python, Bild, Python-Imaging-Bibliothek, transparent

Ich würde gerne wissen, ob es mit Python Pil möglich ist, Text auszuschneiden und das Bild transparent zu machen. Hier ist ein Beispiel, um es besser zu erklären. Bild 1.png ist ein Kreis. Bild 1.png

Bild 2.png ist text.png das sagt nur Danke. Was ich tun möchte, ist Bild2 in Bild1 einzufügen und das auszuschneiden, damit es transparent wird. also sollte es so aussehen wie dieses Bild3.png

Bild2 Bild3

Dies ist, was ich bisher habe, aber es nur das Bild kleben. Ich bin neu bei PIl. Ich bin mir nicht sicher, wie ich Python sagen soll, dass ich das so schneiden möchte.

img = Image.open("picture1.png").convert("RGBA")
bg_w, bg_h = img.size
layer = Image.open("picture2.png").convert("RGBA") # this file is the transparent one
img_w, img_h = layer.size
offset = ((bg_w - img_w)/2, (bg_h - img_h) / 3)
img.paste(layer, offset, mask=layer)
img.save("Picture3.png")

Antworten:

2 für die Antwort № 1

Ich habe es herausgefunden. Hier ist die Antwort:

from PIL import Image, ImageDraw

img = Image.open("circle.png").convert("RGBA")
layer = Image.open("Thanks.png").convert("RGBA") # this file is the transparent one
img.paste(layer, mask=layer)
img.save("Picture3White.png")


img = Image.open("Picture3White.png")
img = img.convert("RGBA")
datas = img.getdata()

newData = []
for item in datas:
if item[0] == 255 and item[1] == 255 and item[2] == 255:
newData.append((255, 255, 255, 0))
else:
newData.append(item)

img.putdata(newData)
img.save("Transparent.png", "PNG")