在某个点后切割图像

Cutting image after a certain point

我有一个不寻常的问题。我将 Pillow 与 Python 3 一起使用,我需要阻止它的一部分变得透明和分层。

如图1所示,左右两边的头发稍微夹住了帽子。

图2是我自己编辑的,是正确的。左侧或右侧没有剪裁。

所有 3 个精灵(头、帽子和头发)都是透明的,并且大小相同。

问题是我可以让它在某个点被切断,但并不是所有的帽子精灵都在同一个地方开始和结束。比如有的可能做一个弧形,最后弧度就没有头发了。

这是我正在使用的代码:

from PIL import Image, ImageTk, ImageChops

background = Image.open("headbase.png")
foreground = Image.open("hair2.png")

Image.alpha_composite(background, foreground).save("test3.png")

background2 = Image.open("test3.png")
foreground2 = Image.open("testhat2.png")

Image.alpha_composite(background2, foreground2).save("testo.png")

这是一个很简单的问题。 我在这里需要做的就是为我不想被头发覆盖的区域制作一个透明蒙版(使我不想有头发的区域有颜色)。

那么,我需要这样做:

    Image.composite(hat, faceandhair, mask).save("RESULT.png")

然后我可以做任何我想要的着色代码。