更改图像样式后运行代码时出错
在此之前,图像与我的代码配合得很好
这是我的密码:
def fixedBW(RGB):
return RGB[0]
def BW8(RGB):
return round(RGB[0] / (255 / 8))
bits = 8
ATable = ['.','*','|','/','(','&','O','%']
filen = input('file: ')
im = Image.open(filen)
im2 = im.convert('P')
im2.save('8-bit.png')
pix = im.load()
pix2 = im2.load()
for x in range(im.size[0]):
for y in range(im.size[1]):
im.putpixel((x, y), (pix2[x,y],pix2[x,y],pix2[x,y]))
im.save('8-bit-BW.png')
pixels = []
for x in range(im.size[0]):
for y in range(im.size[1]):
#print(BW8(pix[x,y]))
pixels.append(ATable[BW8(pix[x,y])])
pixels.append('\n')
#print(pixels)
finpixs = ""
for x in range(len(pixels)):
finpixs = finpixs + pixels[x]
#print(finpixs)
ASCIItxt = open(filen + '.txt', 'w+')
ASCIItxt.write(finpixs)
print('Wrote ' + str(len(finpixs)) + ' chars to ' + filen + '.txt')
我得到这个错误:
Traceback (most recent call last):
File "main.py", line 26, in <module>
im.putpixel((x, y), (pix2[x,y],pix2[x,y],pix2[x,y]))
File "AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\Image.py", line 1743, in putpixel
value = self.palette.getcolor(value)
File "AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\ImagePalette.py", line 110, in getcolor
self.palette[index + 512] = color[2]
IndexError: bytearray index out of range
当我改变我的图像时,它是一个X白色的形状,周围有一些颜色,它工作了,然后是随机颜色混合,然后是一个不工作的粘贴人,我得到了这个错误。此外,图像大小始终为32x32
谢谢你的阅读
目前没有回答
相关问题 更多 >
编程相关推荐