IOError: codec configuration error when reading image file

IOError: codec configuration error when reading image file

我正在尝试使用 Pillow 4.3.0、Python 2.7.13、Debian 9.1

获取 gif 图像的缩略图
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 编码模式 selected 的 raspistill 相机拍摄的照片上。如果根本不 select 编码模式,它工作得很好。但是如果不select编码,那么所有的图片都被当作jpg,这不是我想要的。

raspistill 相机 gif 图像包含位深度 11,

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

而 Pillow 仅支持位深度为 8 的 gif 图像。

我在 Pillow github 页面上发布了这个问题,他们应该会尽快解决。 https://github.com/python-pillow/Pillow/issues/2811