Python图像库透明效果
我已经找了好几天相关的内容,但还是没找到适合我的好答案。我的问题是,我该如何在一个蓝色矩形的上面画一个透明的红色矩形。现在我这样做:
im=Image.new('RGBA',(400,400),'white')
draw=ImageDraw.Draw(im)
draw.rectangle((100,100,200,200),fill=(0,255,0,0)) #big 100*100 green rectangle
draw.rectangle((80,80,130,130),fill=(255,0,0,0)) #small 50*50 red rectangle
im.show()
现在我得到的是红色矩形完全覆盖了绿色矩形的重叠部分,但我希望重叠的部分是透明的,这样我就能看到红色矩形下面的绿色部分,而重叠的部分会显示成另一种颜色。
任何帮助都非常感谢!
2 个回答
0
如果你只是画一个矩形,fill
函数里的第四个参数是透明度,0表示完全不透明。
1
在另一个讨论串中有几个不错的回答。里面提到,如果你打算使用第四个参数,那么绘图对象需要是'RGBA'格式,而基础图像必须是'RGB'模式,这样才能正常工作。