Подтвердить что ты не робот

Использование PIL-модификации, а затем сохранение TIFF возвращает ошибку

TL;DR; Я пытаюсь взять TIFF, изменить его размер, а затем сохранить. Однако он возвращает ошибку. Это отлично работает, если я изменил сохраненный тип файла на png или jpg.

Система: Windows 7 Пробовал использовать оба Python 3.4 и 2.7.

код:

from PIL import Image

try:                                               #test file exists
    im = Image.open(r"c:\temp\file.tif")
except:
    print("Error opening image")

multiply = 5                                       #how much bigger
processing = tuple([multiply*x for x in im.size])  #maths
saved = (r"c:\temp\biggerfile.tif")               #save location

imB = im.resize((processing))                      #resizing

imB.save(saved)                                    #saving

Мне нужно изменить размер TIFF, потому что я использую tesseract-ocr и изменяю размер изображения, чтобы получить лучший результат. Программа работает лучше всего с TIFF.

Получаемая ошибка:

_TIFFVSetField: c:\temp\biggerfile.tif: Bad value 2 for "ExtraSamples" tag.
Traceback (most recent call last):
  File "step1.py", line 15, in <module>
    imB.save(saved)
  File "C:\Python34\lib\site-packages\PIL\Image.py", line 1684, in save
    save_handler(self, fp, filename)
  File "C:\Python34\lib\site-packages\PIL\TiffImagePlugin.py", line 1185, in _save
    e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig)
  File "C:\Python34\lib\site-packages\PIL\Image.py", line 430, in _getencoder
    return encoder(mode, *args + extra)
RuntimeError: Error setting from dictionary

Спасибо!

4b9b3361

Ответ 1

Попробуйте установить libtiff http://gnuwin32.sourceforge.net/packages/tiff.htm

File "C:\Python34\lib\site-packages\PIL\TiffImagePlugin.py", line 1185, in _save
e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig)

Похоже, что ошибка, которая вас удерживает. Он пытается получить доступ к libtiff, и у вас его нет, поэтому он не работает.