我正在编写此代码,以解决用Python自动完成无聊的事情中的问题。该代码应创建一个全黑的新图像,然后在其中心放置一个灰白色矩形,并留一个黑色边框。在测试这部分代码时,在下面的代码摘录的最后一行出现了错误IndexError: image index out of range
。
我发现了许多其他问题来解决此错误消息,但似乎没有任何解决方案相关。我要求为似乎上色的像素范围位于图像的矩形内。我觉得我在这里错过了一些非常简单的事情。
baseIm = Image.new('RGBA', (298, 370), 'black')
for x in range(5, 365):
for y in range(5, 293):
baseIm.putpixel((x, y), (239, 222, 205))
答案 0 :(得分:1)
您的图像宽298像素(尺寸x),高370像素(尺寸y)。
该代码超出范围,因为它尝试设置图像外部的像素-您使x
通过range(5, 365)
。
您为什么不在代码中使用baseIm.width
和baseIm.height
?像这样:
baseIm = Image.new('RGBA', (370, 298), 'black')
for x in range(5, baseIm.width-5):
for y in range(5, baseIm.height-5):
baseIm.putpixel((x,y), (239, 222, 205))
答案 1 :(得分:1)
是的,您犯了一个小错误,交换了列循环和行循环控制值。互换循环x和y的两种范围方法的极限。
baseIm = Image.new('RGBA', (298, 370), 'black')
for x in range(5, 293):
for y in range(5, 365):
baseIm.putpixel((x, y), (239, 222, 205))