Skip to main content
 首页 » 编程设计

python-imaging-library之如何绘制透明多边形

2025年02月15日27bhlsheji

我正在使用 PIL(Python 成像库)。我想绘制透明多边形。似乎指定包含 alpha 级别的填充颜色不起作用。他们的解决方法是什么?

如果不能使用 PIL 完成,我愿意使用其他东西。

如果有多个解决方案,则应考虑性能。绘图需要尽可能快。

请您参考如下方法:

这是针对 Pillow 的,它是 PIL 的一个更维护的分支。 http://pillow.readthedocs.org/

如果要绘制相对于彼此透明的多边形,则基本 Image 必须是 RGB 类型,而不是 RGBA,并且 ImageDraw 必须是 RGBA 类型。例子:

from PIL import Image, ImageDraw 
 
img = Image.new('RGB', (100, 100)) 
drw = ImageDraw.Draw(img, 'RGBA') 
drw.polygon([(50, 0), (100, 100), (0, 100)], (255, 0, 0, 125)) 
drw.polygon([(50,100), (100, 0), (0, 0)], (0, 255, 0, 125)) 
del drw 
 
img.save('out.png', 'PNG') 

这将绘制两个重叠的三角形,它们的两种颜色混合。这比必须为每个多边形合成多个“层”要快得多。