Python PIL切出单词,使其成为透明的PNG

时间:2017-07-30 07:42:07

标签: python image python-imaging-library transparent

我想知道它是否可能与python pil一起剪切文本并使图片透明。这是一个更好地解释它的例子。 Picture 1.png是一个圆圈。 Picture 1.png

图片2.png是text.png,只是说谢谢。我想做的是将picture2放入picture1并将其剪切掉,使其变得透明。所以看起来应该像这个picture3.png

Picture2 Picture3

这是我迄今为止所拥有的,但它只是粘贴图像。我是PIl的新手。我不知道如何告诉python我希望这样切出来。

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')

1 个答案:

答案 0 :(得分:2)

我明白了。这是答案:

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")