[英]How to fix “IndexError: image index out of range”?
我在用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))
您的图像宽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))
是的,您犯了一个小错误,交换了列循环和行循环控制值。 互换循环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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.