Python PIL:使多边形外的像素透明
目前,为了使多边形透明,我正在做Python PIL:使多边形外的像素透明,python,python-imaging-library,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),
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()
但是我想要的是多边形外部的所有区域都是透明的,多边形内部的区域是相同的。基本上,与我现在所做的相反。你可以用它来反转遮罩
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()
注意:ImageOps.invert(多边形)不适用于RGB图像。必须使用来解决这个问题。