2013-02-22 117 views
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() 

我现在得到的是读取矩形完全覆盖重叠绿色的一个组成部分,但我想相重叠的部分是透明的,这样我就可以在红色矩形下看到它是绿色的和部分重叠部分将是另一种颜色。

任何帮助,将不胜感激!

+0

你想整个矩形稍微透明或只是重叠部分? – ikanobori 2013-02-22 10:47:03

+0

我想整个红色长方形稍微透明的,对不起的不明 – xiaozhu123 2013-02-22 10:49:25

+0

可能重复[你怎么画与Python透明多边形?](http://stackoverflow.com/questions/359706/how-do-you-draw - 透明多边形与蟒蛇) – chrisst 2014-08-25 19:00:08

回答

0

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

+0

我第一次尝试混合方法,这是工作!谢谢!但通过更改第四个参数(绿色与200,用50读一个)没有工作:( – xiaozhu123 2013-02-22 11:09:11

1

几个很好的答案在another thread。 包括解释说,如果你要使用的第四个参数,然后绘制对象必须是“RGBA”和底座图像必须是“RGB”模式,这个工作。