1

几天来我一直在搜索相关字符串,但找不到适合我的答案。我的问题是如何在蓝色矩形上绘制一个透明的红色矩形。这就是我现在的情况。

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()

我现在得到的是读取的矩形完全覆盖了绿色的重叠部分,但我希望重叠部分是透明的,这样我可以在红色矩形下看到它是绿色的部分,重叠部分将是另一种颜色。

任何帮助,将不胜感激!

4

2 回答 2

1

另一个线程中有几个很好的答案。包括解释如果您要使用第四个参数,那么绘图对象需要是“RGBA”,并且基础图像必须是“RGB”模式才能工作。

于 2014-08-25T20:14:34.493 回答
0

如果你只是做一个矩形,第四个参数fill是一个不透明度,其中 0 是完全不透明的。

于 2013-02-22T10:52:18.490 回答