我正在尝试执行以下代码:
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)
阅读此处的文档