如何通过python枕头(fork-PIL)创建半透明填充的三角形

如何通过python枕头(fork-PIL)创建半透明填充的三角形,python,python-imaging-library,Python,Python Imaging Library,我知道如何创建三角形并在其中填充一些RGB颜色。 但我不知道如何填充rGBA颜色到它。(或其他半透明颜色大小) 另一方面,如果我可以用半透明的颜色创建第一个三角形,当我绘制第二个三角形时,第二个三角形可以或不能将颜色与第一个三角形混合?创建两个图像,并使用alpha_composite将它们合并: im = Image.new('RGB', (255, 255)) draw = ImageDraw.Draw(im) draw.polygon([(0, 0), (0, 255), (255, 25

我知道如何创建三角形并在其中填充一些RGB颜色。 但我不知道如何填充rGBA颜色到它。(或其他半透明颜色大小)


另一方面,如果我可以用半透明的颜色创建第一个三角形,当我绘制第二个三角形时,第二个三角形可以或不能将颜色与第一个三角形混合?

创建两个图像,并使用
alpha_composite
将它们合并:

im = Image.new('RGB', (255, 255))
draw = ImageDraw.Draw(im)
draw.polygon([(0, 0), (0, 255), (255, 255), (255, 0)], fill = 'white')
draw.polygon([(1,1), (20, 100), (100,20)], fill = (200, 0, 0)) # outline='red', fill='blue'
im.save('my_pic.png')
透明度始终可以设置为颜色的第四个值,例如:

  • 颜色=(0,0,0,255)=>无透明度的黑色
  • 颜色=(255,255,255,0)=>白色和完全透明

但当我画第二个三角形时,第二个三角形将覆盖第一个三角形,而不是在公共位置混合颜色,这正是我想要的!谢谢你的回答和耐心!
img1 = Image.new('RGBA', (255, 255)) # Use RGBA
img2 = Image.new('RGBA', (255, 255)) # Use RGBA
draw1 = ImageDraw.Draw(img1)
draw2 = ImageDraw.Draw(img2)

draw1.polygon([(0, 0), (0, 255), (255, 255), (255, 0)], fill = (255,255,255,255))

transparence = 100 # Define transparency for the triangle.
draw2.polygon([(1,1), (20, 100), (100,20)], fill = (200, 0, 0, transparence))

img = Image.alpha_composite(img1, img2)
img.save("my_pic.png", 'PNG')