2016-11-02 8 views
0

[beaucoup de choses ont été résolues depuis la question d'origine. Voir les commentaires ci-dessous. Il reste que le fichier final ne contient que la première page, je ne vois aucun message d'erreur ou d'erreur]Problème lors de la tentative d'obtention d'un document .tiff multipage à partir d'une liste de pages .tiff en utilisant Image.save (.. save_all = True, append_images = [..])

J'ai vu que dans la version récente de Pillow ajouté le support pour la sauvegarde des images de plusieurs pages, esp. TIFF avec im_all.save ('test.tiff', save_all = True).

Maintenant, il ne me semble pas comment je devrais procéder pour créer un multipage .tiff en utilisant une liste de pages .tiff à mettre ensemble. Je n'ai pas trouvé d'exemple ou d'indication dans la documentation. Ai-je besoin de redimensionner chaque image à la taille du document final? J'ai fait un test naïf WithMy B & W .tiff qui ont un mode "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) 

mais je suis les messages d'erreur

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' 

J'utilise python 2.7.12 oreiller 3.2.0

Est-ce que quelqu'un sait comment nous sauvegardons une liste de page .tiff dans un document .tiff de plusieurs pages? Je suppose que je fais quelque chose de mal.

Merci

Fabien

+0

votre code est tronqué. s'il vous plaît ajouter une partie manquante. –

+0

J'ai ajouté le manque "(" mais c'est une petite partie du code qui est pertinent pour mon problème.J'ai ajouté le journal complet.Merci –

+0

ok, je ne savais pas que la nouvelle fonction était seulement introduire dans une dernière version. Utiliser un peu d'aide pour Pillow 3.4.2 J'ai également ajouté im.load() au lieu de im.close() pour être sûr que la connexion au fichier a été fermée Avec Windows im.close() n'a pas fermé la connexion et Windows se plaignait qu'il était utilisé par une autre application.Le seul problème que j'ai maintenant est que mon fichier final est seulement 1 page, entièrement noir et la taille est 10x plus élevé que toutes les pages ensemble! Aucune idée .. Mon nouveau fichier n'est pas créé dans le bon –

Répondre

0

les ouvrages suivants il a été suggéré ici link:

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()

J'utilise oreiller 4.0.0