Python PIL - 画圆[重复]

Posted

技术标签:

【中文标题】Python PIL - 画圆[重复]【英文标题】:Python PIL - Draw Circle [duplicate] 【发布时间】:2014-01-11 21:31:07 【问题描述】:

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

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(我认为模式可能会影响显示的内容),但这并没有解决问题。

我该如何解决这个问题?谢谢!

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

啊,我没想到会有区别。谢谢! @F3AR3DLEGEND,文档在这个主题上相当安静,不是吗?它提到的只是一个边界框,你会认为框的任何角落都可以。 是的。我认为任何一对对角都可以,但显然不行。【参考方案2】:

您的省略号坐标不正确,应该是(x1, y1, x2, y2),其中x1 <= x2y1 <= y2,因为这对(x1, y1)(x2, y2) 分别代表封闭矩形的左上角和右下角。

尝试改成

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

【讨论】:

以上是关于Python PIL - 画圆[重复]的主要内容,如果未能解决你的问题,请参考以下文章

HTML5画圆,且每个圆之间隔一个半圆,重复多次

python游戏pygame模块画圆及移动方法介绍

HTML5画圆,且每个圆之间隔一个半圆,重复多次

MFC编程ellipse()怎么画圆

canvas 画圆的几种方式

在ArcGIS中怎么画圆