IOError: ошибка конфигурации кодека при чтении файла изображения

Я пытаюсь получить эскиз изображения GIF, используя Pillow 4.3.0, Python 2.7.13, Debian 9.1

from PIL import Image

im = Image.open("Pictures/image.gif")
im.thumbnail((240,160))
im.save("Thumbnails/thumbnail.gif")

Но я не могу этого сделать. Это журнал:

Traceback (most recent call last):
  File "testpy.py", line 4, in <module>
    im.thumbnail((240,180))
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1843, in 
  thumbnail
    im = self.resize(size, resample)
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1541, in 
  resize
    self.load()
  File "/usr/lib/python2.7/dist-packages/PIL/ImageFile.py", line 244, in 
  load
    raise_ioerror(err_code)
  File "/usr/lib/python2.7/dist-packages/PIL/ImageFile.py", line 59, in 
  raise_ioerror
    raise IOError(message + " when reading image file")
IOError: codec configuration error when reading image file

Эта проблема не возникает с другими форматами (JPG, PNG, BMP).

Любая помощь очень ценится.

Редактировать: это происходит конкретно на снимках, сделанных с помощью камеры распирания с выбранным режимом кодирования GIF. Если вообще не выбирать режим кодирования, он работает хорошо. Но если не выбирать кодировку, то все изображения обрабатываются как jpg, а это не то, что я хочу.

1 ответ

Решение

Распространение изображений с камеры GIF содержит бит глубиной 11,

>>> im.tile
[('gif', (0, 0, 100, 100), 792, (11, False))]

в то время как Подушка поддерживает изображения GIF только до глубины 8 бит.

Я разместил этот вопрос на странице Pillow GitHub, и они должны исправить это в ближайшее время. https://github.com/python-pillow/Pillow/issues/2811

Другие вопросы по тегам