gpt4 book ai didi

python - 开罗(带Python): Is it possible to fill a Polygon with a transparent line?

转载 作者:行者123 更新时间:2023-12-01 06:11:59 27 4
gpt4 key购买 nike

这是我现在使用的代码:

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, *image.size)
context = cairo.Context(surface)
context.set_source_rgba(1, 1, 1, 1)
context.new_path()
for i in xrange(len(points)):
context.line_to(*points[i])

context.close_path()
context.fill()

问题是它用与我绘制的颜色相同的颜色填充多边形。我尝试在这个多边形上绘制一个新的多边形,并只执行 context.lines() 而不是 fill() 但只有当我使用不同的颜色时才有效,因为否则下面是白色。我尝试使用 (0,0,0,0) 所以它是透明的,但白色在它下面。

我可以绘制一条彩色线(例如(0.5,0.5,0.5,1)),使用write_to_png将其保存到图像中,使用PIL加载它,转换到 numpy.array 并将每个像素替换为背景颜色 (0, 0, 0, 0) 的正确颜色,但这效率不高。

我还尝试将线宽设置为 0,但这也不起作用。

此外,我对开罗以外的其他方法也很满意。我尝试过 ImageDraw 的 polygon 但它没有绘制确切的形状(我不知道如何解释,但它在多边形之外绘制了一些不应该的额外像素) ,所以 ImageDraw 对我没有帮助。

最佳答案

fill_preserve()
context.set_source_rgba(0, .6, 1, .7) #line color
context.set_line_width(2.35)
context.stroke()

关于python - 开罗(带Python): Is it possible to fill a Polygon with a transparent line?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5400099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com