如何使用PIL从图片中裁剪自定义形状?

时间:2019-03-27 20:06:47

标签: python python-imaging-library

我想剪张照片,例如:
enter image description here

使用另一张具有透明背景的图片,例如:
enter image description here

并得到以下结果:
enter image description here

如何使用Python PIL / Pillow实现此目的?或任何其他库,但必须在Python中。

1 个答案:

答案 0 :(得分:2)

source.png调用第一张图片,mask.png调用徽标™

您的徽标是透明的,但以相反的方式显示,因此透明性对我们没有用。另外,在这种情况下,当我们删除透明度时,透明区域几乎变为白色,因此我们需要对其进行阈值设置。

from PIL import Image, ImageOps

# Convert to grayscale
mask = Image.open('mask.png').convert('L')

# Threshold and invert the colors (white will be transparent)
mask = mask.point(lambda x: x < 100 and 255)

# The size of the images must match before apply the mask
img = ImageOps.fit(Image.open('source.png'),mask.size)

img.putalpha(mask) # Modifies the original image without return

img.save('result.png')

The picture once cutted