我将图像的像素存储在单个多处理中。整数的阵列可以被索引为
self.data[x*height + y]
因为这对IPC使用很方便。
我正在尝试使用PIL的putdata()将像素保存到文件中,以使其比使用putpixel()或[]索引更快。但是我无法弄清楚putdata()想要imagedata的格式。
我认为相同类型的索引可以与putdata()
一起使用def write(self):
im = Image.new("RGB", (self.width, self.height))
imagedata = [self.intToRGB(self.data[i*self.height + j])
for i in range(self.width)
for j in range(self.height)]
im.putdata(imagedata)
im.save(self.filename, "PNG")
self.intToRGB()返回一个元组(r,g,b)。
但是上面的代码会导致-90度变成重复的图像。
如果我使用putpixel()而不是像这样的putdata():
pic = im.load()
for i in range(self.width):
offset = i * self.height
for j in range(self.height):
pic[i, j] = imagedata[i * self.height + j]
它产生
答案 0 :(得分:4)
我想我在第一行看到了问题:
self.data[x*height + y]
图像数据通常以相反的方式组织:
self.data[y*width + x]