想象一下简单的脚本:
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")
结果:
(抱歉大尺寸,但更清楚)
问题: 你能看到非黄色和非白色边缘吗?这是alpha通道或其他东西。
当我尝试仅使用PIL
的{{1}}对象执行此操作时,它看起来既清晰又好但不消除锯齿。
但是对于Draw
的{{1}}对象,它看起来已经消除了锯齿,但带有那些丑陋的脏边。
我需要具有非标准侧角的多边形。简单的盒子不是我想要的。
请帮助我一些乐观的答案如何解决这个问题。
答案 0 :(得分: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)