首页 > 解决方案 > 如何填充 PIL 绘制的自相交多边形?

问题描述

我用 PIL ImageDraw 绘制了多边形。像这样。

    points = [[100, 100],[150, 100],[150, 150],[130, 150],[130, 50],[140, 50],[140, 140],[145, 140],[145, 110],[100, 110],[100, 100]]
    with Image.new('RGBA', (200, 200), (0, 0, 0, 255)) as im:
        draw = ImageDraw.ImageDraw(im, 'RGBA')
        draw.polygon([tuple(point) for point in points], fill=(125, 125, 125, 255), outline=None)
        return im

结果是,

在此处输入图像描述

自相交区域没有被 (125, 125, 125, 255) 填充。我认为 PIL 可能会使用奇偶填充规则。如何填充自相交区域?或者如何使用非零绕组填充规则?

标签: pythonpython-imaging-librarypolygon

解决方案


推荐阅读