Pillow не может читать разные файлы TIFF

Я использую Pillow 2.2.1 (установил его с помощью pip) на Ubuntu Server 12.04 64-бит и пытаюсь пакетно изменить размер изображений в формате jpeg. Я также установил zlib1g-dev и libtiff-dev с помощью apt-get.

Я использую следующую строку

   Image.open(path/to/image)

для открытия файлов изображений (jpeg и tiff). Я могу открыть некоторые изображения в формате tiff, но для других я просто получаю следующую ошибку:

   File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2006, in open
     raise IOError("cannot identify image file")

Поскольку это происходит не для каждого изображения в формате TIFF, которое я пытаюсь открыть, означает ли это, что эти файлы повреждены? У меня нет проблем с открытием рассматриваемых изображений с помощью средства просмотра фотографий Windows или даже с помощью GIMP.

Примечание. Все изображения были переданы мне моим клиентом, поэтому я понятия не имею, как он оцифровал изображения (насколько я могу предположить, отсканировал или сфотографировал их) и имеет ли это вообще какое-либо значение.

Я пропустил пакет или зависимость, или действительно есть что-то в файлах изображений, чего я не вижу?


person lptorres    schedule 25.10.2013    source источник
comment
каков ваш полный путь к файлу изображения?   -  person Games Brainiac    schedule 25.10.2013
comment
@GamesBrainiac извините, я не совсем ясно выразился. На самом деле путь был просто именем файла, поскольку файл находился в рабочем каталоге, из которого я запускал интерпретатор Python. cgohlke вот один файл пример.   -  person lptorres    schedule 26.10.2013


Ответы (1)


TIFF — это всего лишь контейнерный формат (как AVI на видео). Расширение файла на самом деле не означает, как кодируются данные изображения внутри. Большинство профессиональных приложений для редактирования фотографий создают свой собственный вариант TIFF, который не читается в других программах. PIL может поддерживать только определенное подмножество разновидностей TIFF (например, без сжатия).

Если ваша система представляет собой систему в стиле веб-загрузки, я предлагаю вам прекратить принимать формат TIFF, чтобы вообще избежать проблем.

Дополнительная информация: http://en.wikipedia.org/wiki/Tagged_Image_File_Format.

person Mikko Ohtamaa    schedule 25.10.2013
comment
Привет @mikko, спасибо за быстрый ответ. Это очень информативно, так как я не особо разбираюсь в форматах изображений и тому подобном. Мой клиент, однако, очень не разбирается в технологиях, поэтому я хочу, насколько это возможно, сделать свою систему (вы правы, это система веб-загрузки) как можно более гибкой с форматами. Поскольку я изменяю размер изображений только для экономии места и создания миниатюр, возможно, я рассмотрю pythonmagick. Я также рассматриваю вашу рекомендацию, однако. - person lptorres; 26.10.2013