我使用PyPng绘制Png-文件.我对它很陌生(新的20分钟),我使用下面的代码生成一个6×6像素的图像,但它不工作。我尝试过在3×6图像上使用相同的代码(可能或者没有从互联网上复制),而且效果很好,但是每次我收到这条错误消息时:
追溯(最近一次调用):文件"C:\Users\FakeUserTotallyMadeUp\Desktop\Python\imgGen\imgGen.py",第21行,在w.write(f,p)中
文件"C:\Users\FakeUserTotallyMadeUp\AppData\Roaming\Python\Python37\site-packages\png.py",第668行,在写nrow= self.write_passes(outfile,check_rows(行))中
文件"C:\Users\FakeUserTotallyMadeUp\AppData\Roaming\Python\Python37\site-packages\png.py",第703行,在write_passes中返回self.write_packed(外文件,行)
文件"C:\Users\FakeUserTotallyMadeUp\AppData\Roaming\Python\Python37\site-packages\png.py",第723行,在write_packed self.write_preamble(外文件)中
文件"C:\Users\FakeUserTotallyMadeUp\AppData\Roaming\Python\Python37\site-packages\png.py",第770行,在write_preamble 0,0,self.interlace中)
struct.error:必需参数不是整数
我试过很多东西来修理它,但都没有用。
下面是代码:
import png
rowofrgb = ()
newrowofrgb = ()
p = [(255,0,0, 255,0,0, 0,255,0, 0,255,0, 0,0,255, 0,0,255)]
for i in range(5):
rowofrgb = p[i]
for b in rowofrgb:
addtonewrow = (round(b/2),)
newrowofrgb += addtonewrow
rowofrgb = newrowofrgb
newrowofrgb = ()
p.append(rowofrgb)
f = open('swatch.png', 'wb')
w = png.Writer(len(p[0])/3, len(p), greyscale=False)
w.write(f, p)
f.close()发布于 2022-04-23 16:43:51
我看到的第一件事是,p是一个包含一个元素的列表,一个元组,这个元组由18个整数组成。也许您指的是包含6个元组的列表,每个元组有3个元素:
p = [(255,0,0), (255,0,0), (0,255,0), (0,255,0), (0,0,255), (0,0,255)]https://stackoverflow.com/questions/71981655
复制相似问题