Python PIL : Make pixels outside a polygon transparent

标签 python python-imaging-library

目前,为了使多边形透明,我正在做,

img = Image.open("")
back = Image.new('RGBA', img.size)
back.paste(img)
poly = Image.new('RGBA', (512,512))
pdraw = ImageDraw.Draw(poly)
pdraw.rectangle([(10,10),(100,100)],
          fill=(255,255,255,200))

back.paste(poly, (0,0), mask=poly)
back.show()

但是我想要的是多边形外部的所有区域都是透明的,并且多边形内部的区域相同。基本上,与我现在正在做的相反。

最佳答案

您可以使用ImageOps反转蒙版。

from PIL import ImageOps   

img = Image.open("")
back = Image.new('RGBA', img.size)
back.paste(img)
poly = Image.new('RGBA', (512,512))
pdraw = ImageDraw.Draw(poly)
pdraw.rectangle([(10,10),(100,100)],
          fill=(255,255,255,200))
inverted_poly = ImageOps.invert(poly)
back.paste(poly, (0,0), mask=inverted_poly)
back.show()

关于Python PIL : Make pixels outside a polygon transparent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620201/

相关文章:

python - 删除字符串的最后 3 个字符

python - 根据 python 中具有多个参数的现有函数中的一个自由参数创建一个可调用函数

python - 在 Python 3.1 上使用 OpenCV 的 ctypes 指针

python - 如何在 Ubuntu 11.04 中安装 PIL?

python - 如何向 numpy 数组添加运动模糊

opencv - 从二维图像中提取视网膜区域

python - 如何在 Python 中连接多个数据帧?

python - 对 PyQt 应用程序进行单元测试

python - PIL ImageGrab 在 Python 中捕获选定的窗口

python - 检索支持的读取文件扩展名/格式列表