In welches format hat PIL ist putdata müssen die Daten sein?
Ich speichern eines Bildes werden die Pixel in einem einzelnen multiprocessing.Array von Ganzzahlen, die indiziert werden können, wie
self.data[x*height + y]
als dieser ist bequem zu bedienen, mit IPC.
Ich versuche zum speichern der Pixel, um eine Datei mit PIL ' s putdata() um es schneller zu machen als mit putpixel() oder die [] - Indizierung. Allerdings kann ich nicht herausfinden, in welches format hat putdata() wollen die Bilddaten.
Ich dachte, die gleiche Art von Indizierung wäre die Arbeit mit 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")
selbst.intToRGB() gibt ein Tupel(r, g, b).
Aber der code oberhalb der Ergebnisse auf einen 90 Grad gedreht Bild mit viel Wiederholung.
Wenn ich putpixel() anstelle von putdata() wie folgt:
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]
produziert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, ich sehe das problem in deiner ersten Zeile:
Bilddaten ist in der Regel organisiert die andere Weise herum: