Python,用PIL绘制圆形

23 投票
4 回答
51797 浏览
提问于 2025-04-15 23:35

我想找一个命令,可以在已有的图片上用PIL画一个圆。

im = Image.open(path)

我想要一个函数,可以画一个颜色的圆,半径是r,圆心在(x,y)这个位置。

4 个回答

9
image = Image.open("x.png")
draw = ImageDraw.Draw(image)
draw.ellipse((x-r, y-r, x+r, y+r), fill=(255,0,0,0))

用这种方法我无法让它变得半透明,它总是完全不透明。

这个问题可以通过这里提供的解决方案来解决:如何用Python绘制透明的多边形?

直接链接:https://stackoverflow.com/a/21768191

10

使用 ImageDraw.ellipse 方法,传入一个正方形的边界框,比如 (0,0,10,10),这表示这个圆的直径是 10。

33
image = Image.open("x.png")
draw = ImageDraw.Draw(image)
leftUpPoint = (x-r, y-r)
rightDownPoint = (x+r, y+r)
twoPointList = [leftUpPoint, rightDownPoint]
draw.ellipse(twoPointList, fill=(255,0,0,255))

请参考官方文档:PIL.ImageDraw.ImageDraw.ellipse(xy, fill=None, outline=None, width=0)

撰写回答