self.draw.draw_polygon(xy,fill,1)类型错误:坐标列表必须至少包含2个坐标



我正在尝试执行以下代码:

def polygon(self, xy, fill=None, outline=None):
"""Draw a polygon."""
ink, fill = self._getink(outline, fill)
if fill is not None:
self.draw.draw_polygon(xy, fill, 1)
if ink is not None and ink != fill:
self.draw.draw_polygon(xy, ink, 0)

但我收到了这个错误消息:

File "C:UsersAbir KhanAppDataLocalProgramsPythonPython36libsite-packagesPILImageDraw.py", line 241, in polygon
self.draw.draw_polygon(xy, fill, 1)
TypeError: coordinate list must contain at least 2 coordinates

您需要检查xy坐标值及其形状,此错误仅是由于它引起的。

xy应该是这样的:

[(180.0, 60.0), (153.63961030678928, 102.42640687119285), (90.0, 120.0), (26.360389693210728, 102.42640687119285), (0.0, 60.000000000000014), (26.36038969321071, 17.573593128807154), (89.99999999999999, 0.0), (153.63961030678928, 17.57359312880714)]

请参阅此博客:https://www.geeksforgeeks.org/python-pil-imagedraw-draw-polygon-method/

draw_polygon应该取一系列点。换句话说,xy应该是包含每个点的x和y值的元组列表。

points = [(1, 2), (3, 2), (1, 0), (3, 0)]
self.draw.draw_polygon(points, ink, 0)

阅读此处的文档

最新更新