2016-11-02 1 views
0

[Viele Dinge wurden seit der ursprünglichen Frage gelöst. Siehe die Kommentare unten. Es bleibt, dass die letzte Datei nur die erste Seite enthält, ich sehe keine Warnung oder Fehlermeldungen]Problem beim Versuch, ein mehrseitiges .tiff Dokumente aus einer Liste von TIFF-Seite mit Image.save (.. save_all = True, append_images = [..])

Ich sah, dass in der neuesten Version von Pillow Unterstützung für das Speichern mehrseitiger Bilder, esp. TIFF mit im_all.save ('test.tiff', save_all = True).

Jetzt ist mir nicht klar, wie ich fortfahren sollte, um ein mehrseitiges .tiff zu erstellen, indem ich eine Liste von TIFF-Seiten zusammensetze. Ich konnte kein Beispiel oder irgendeine Angabe in der Dokumentation finden. Muss ich jedes Bild auf die Größe des endgültigen Dokuments skalieren? Ich habe einen naiven Test withmy B & W Tiff die Betriebsart "1"

list_im=[] 
im_all=Image.new("1", (2500, 3500)) 
for i in list_file: 
    print i 
    im = Image.open(path_tmp+'/'+i) 
    print im.format, im.size, im.mode 
    list_im.append(im) 
    im.close() 

im_all.save('test.tiff', save_all=True,append_images=list_im) 

hat, aber ich habe die Fehlermeldungen

42526530005_632__0.tiff 
TIFF (2445, 3472) 1 
42526530005_632__1.tiff 
TIFF (2448, 3474) 1 
42526530005_632__2.tiff 
TIFF (2451, 3471) 1 
42526530005_632__3.tiff 
TIFF (2454, 3471) 1 
42526530005_632__4.tiff 
TIFF (2459, 3471) 1 
42526530005_632__5.tiff 
TIFF (2467, 3472) 1 
42526530005_632__6.tiff 
TIFF (2452, 3471) 1 
Traceback (most recent call last): 
    File "master_cost_claims_analyser.py", line 1401, in <module> 
    main() 
    File "master_cost_claims_analyser.py", line 1398, in main 
    args.all_steps) 
    File "master_cost_claims_analyser.py", line 565, in cost_claim_analyser_main 
    verbose) 
    File "H:/DATA/Projects and Documents/Projects/ClaimsCostAnalyzer/ClaimsCostAnalyzerCode/ClaimsExtraction/get_claims_functions.py", line 176, in get_claims 
    im_all.save('test.tiff', save_all=True,append_images=list_im) 
    File "C:\Program Files\Anaconda2\lib\site-packages\PIL\Image.py", line 1679, in save 
    save_handler = SAVE_ALL[format.upper()] 
KeyError: 'TIFF' 

Ich verwende Python 2.7.12 Kissen 3.2.0

Wissen Sie, wie wir eine Liste von .tiff-Seiten in einem mehrseitigen .tiff-Dokument speichern? Ich denke, ich mache etwas falsch.

Dank

Fabien

+0

Code abgeschnitten. Bitte fügen Sie fehlende Teile hinzu. –

+0

Ich fügte das fehlende "(" hinzu, aber das ist ein winziger Teil des Codes, der für mein Problem relevant ist. Ich habe das vollständige Protokoll hinzugefügt. Danke –

+0

ok, mir war nicht klar, dass die neue Funktion nur in der neuesten Version eingeführt wurde. Mit Hilfe von Pillow 3.4.2 habe ich ein wenig geholfen und die im.load() anstelle von im.close() hinzugefügt, um sicher zu sein, dass die Verbindung zur Datei geschlossen wurde. Mit Windows im.close() wurde die Verbindung nicht geschlossen und Windows beschwert sich, dass es von einer anderen Anwendung verwendet wurde. Das einzige Problem, das ich jetzt habe, ist, dass meine letzte Datei nur eine Seite, komplett schwarz und die Größe 10x höher als alle Seiten zusammen ist! Keine Ahnung. Ist meine neue Datei nicht in der richtigen erstellt Weg? –

Antwort

0

folgende Arbeiten, wie es hier link vorgeschlagen wurde:

with PIL.TiffImagePlugin.AppendingTiffWriter("./test.tiff",True) as tf:
for tiff_in in list_file: with open(tiff_in) as tiff_in: im= Image.open(tiff_in) im.save(tf) tf.newFrame()

Ich bin mit Kissen 4.0.0

Verwandte Themen