2016-11-02 2 views
0

[много вещей были решены с оригинального вопроса. См. Комментарии ниже. Остается, что окончательный файл содержит только первую страницу, я не вижу сообщений об ошибках или ошибках]Проблема при попытке получить многостраничные документы .tiff из списка .tiff-страницы с использованием Image.save (.. save_all = True, append_images = [..])

Я увидел, что в последней версии Pillow добавлена ​​поддержка для сохранения многостраничных изображений, особенно. TIFF с im_all.save ('test.tiff', save_all = True).

Теперь мне непонятно, как мне следует создать многостраничный .tiff, используя список .tiff-страниц, которые нужно собрать вместе. Я не мог найти пример или некоторые указания в документации. Нужно ли изменять размер каждого изображения до размера финального документа? Я сделал наивный тест WithMy B & W .tiff, которые имеют режим "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) 

, но я получил сообщение об ошибке

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' 

Я использую питон 2.7.12 подушку 3.2.0

Кто-нибудь знает, как мы сохраняем список .tiff-страниц в многостраничных документах .tiff? Думаю, я делаю что-то неправильно.

Благодаря

Fabien

+0

код обрывается. добавьте недостающую часть. –

+0

Я добавил отсутствующий "(" но это крошечная часть кода, которая имеет отношение к моей проблеме.Я добавил полный журнал. Спасибо –

+0

ОК, я не понял, что новая функция была представлена ​​только в последней версии. Использование Pillow 3.4.2 немного помогло.Я также добавил im.load() вместо im.close(), чтобы убедиться, что соединение с файлом было закрыто. В Windows im.close() не закрыл соединение и Windows жаловалась на то, что она использовалась другим приложением. Единственная проблема, с которой я столкнулся сейчас, - это то, что мой окончательный файл имеет только 1 страницу, полностью черный, а размер в 10 раз выше, чем все страницы вместе! Не знаю, мой новый файл не создан правильно way? –

ответ

0

следующие работы, как это было предложено здесь 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()

Я использую подушку 4.0.0

Смежные вопросы