Tiff Dateien korrekt mit PIL speichern...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
axon
User
Beiträge: 15
Registriert: Donnerstag 23. Juni 2011, 19:21

Ich habe folgendes Problem:
Ich möchte einige Bilder als Stack malen. Dazu greife ich bisher immer noch auf einen inhaltleeren Stack zu. Dann schreibe ich meine Daten.
Das Problem ergibt sich nun an zweierlei Stellen:
1. Wenn ich mit Image.seek(x) an die nächste Stelle gehe, dann gehen Daten verloren und beim wiederholten Aufruf des vorhergehenden Bildes, finde ich alle Pixel wieder mit dem Ausgangswert vor.
2. Wenn ich an der entsprechenden Stelle speichern will. Wird immer nur ein Slide aus dem gesamten Stack gespeichert. Und nicht der gesamte Stack.

bsp:

Code: Alles auswählen

import Image
a=Image.open("viele_bilder_in_einem_stack.tif")

print a
>>> <TiffImagePlugin.TiffImageFile image mode=L size=100x100 at 0xB70DE44C>

a.putpixel((10,10),255)
a.show()
# -> der Pixel an der Stelle (10,10) ist tatsächlich weiß (255)

a.seek(1)
a.seek(0)
a.show()
#-> in der Ausgabe ist der vorher eingefärbte Pixel wieder schwarz (0)

a.putpixel((20,20),100)
a.save("viele_bilder_in_einem_stack_EDIT.tif", "TIFF")
#-> das gespeicherte Bild enthält nur noch einen einzigen Slide. (auf dem allerdings der Pixel (20,20) auch dunkel grau (100) ist.
Was muss ich tun, um Änderungen dauerhaft in einem Stack zu speichern? und dann auch auf die Platte zu schreiben?
Ich habe mir schon die Zähne an dieser Frage ausgebissen und bin an dem Punkt, dass ich für jeden Ratschlag sehr dankbar wäre...
BlackJack

@axon: AFAIK ist das mit PIL nicht möglich.
axon
User
Beiträge: 15
Registriert: Donnerstag 23. Juni 2011, 19:21

@ BlackJack: Gibt es denn sonst eine Möglichkeit Tiff's mit mehreren Slides zu bearbeiten oder zu speichern?
axon
User
Beiträge: 15
Registriert: Donnerstag 23. Juni 2011, 19:21

das hatte ich mir schonmal anguckt, fand aber das handling blöde ...
da ich keinen guten anderen Ausweg wusste, bin ich schnell auf java umgesprungen und habe mich ein bisschen an ImageJ bedient, da ist der Umgang mit stacks wesentlich einfacher ... auch wenn man hinterher nicht mehr lesen kann, was man früher mal geschrieben hat und meine codes für ein größeres Projekt jetzt in zwei Sprachen sind ... :roll: :K

danke trotzdem.
BlackJack

@axon: Du könntest ja per Jython auf die Javabibliothek zugreifen. Dann kannst Du bei Python-Syntax bleiben. :-)
Antworten