1

想象一下简单的脚本:

from PIL import Image
from aggdraw import Draw, Brush

im = Image.new("RGBA", (600, 600), (0, 0, 0, 0))
draw = Draw(im)

brush = Brush("yellow")

draw.polygon(
             (
              50, 50,
              550, 60,
              550, 550,
              60, 550,
             ),
             None, brush
            )

draw.flush()
im.save("2.png")

结果: 在此处输入图像描述

(对不起大尺寸,但更清楚)

问题是: 你能看到非黄色和非白色的边缘吗?这是阿尔法通道什么的。

当我尝试仅使用PIL'Draw对象执行此操作时 - 它看起来清晰且良好,但没有抗锯齿。

但是对于aggdraw'Draw对象,它看起来是抗锯齿的,但具有丑陋的肮脏边缘。

我需要具有非标准侧角的多边形。简单的盒子不是我想要的。

请帮我一些好的乐观答案来解决这个问题。

4

1 回答 1

1

这是因为您的背景是黑色的,但透明的。如果将图像背景设置为白色,则看不到可见边缘。在我的简单测试中,透明或纯白色都适用。

试试这些值:

transBlack = (0, 0, 0, 0)         # shows your example with visible edges
solidBlack = (0, 0, 0, 255)       # shows shape on a black background
transWhite = (255, 255, 255, 0)
solidWhite = (255, 255, 255, 255)

im = Image.new("RGBA", (600, 600), solidWhite)
于 2011-10-24T04:05:18.710 回答