Python PIL - 绘制圆形

24

我正在尝试使用Python Imaging Library绘制一个简单的圆并将其保存到文件中:

import Image, ImageDraw

image = Image.new('RGBA', (200, 200))
draw = ImageDraw.Draw(image)
draw.ellipse((20, 180, 180, 20), fill = 'blue', outline ='blue')
draw.point((100, 100), 'red')
image.save('test.png')

图像上出现了draw.point,但椭圆本身没有显示出来。我尝试将模式更改为仅RGB(我认为模式可能会影响显示的内容),但这并没有解决问题。

我该如何解决?谢谢!

2个回答

31

将上右和下左坐标交换,可以得到上左和下右坐标,而不是指定它们。

draw.ellipse((20, 20, 180, 180), fill = 'blue', outline ='blue')

啊,我没想到会有区别。谢谢! - Rushy Panchal
1
@F3AR3DLEGEND,文档对此问题的描述相当少,是吧?它只提到了一个边界框,而你可能认为框的任何角落都可以。 - Mark Ransom
是的,我以为任何一对对角线都可以,但显然不行。 - Rushy Panchal

10
你的省略坐标不正确,应该是(x1, y1, x2, y2),其中x1 <= x2y1 <= y2,因为这些对(x1, y1)(x2, y2)分别表示封闭矩形的左上角和右下角。请尝试更改为

.
draw.ellipse((20, 20, 180, 180), fill = 'blue', outline ='blue')

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接