目前,为了使多边形透明,我正在做,
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/