1

我正在尝试使用 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)不会出现此问题。

非常感谢任何帮助。

编辑:这特别发生在使用 raspistill 相机制作的图片上,并选择了 gif 编码模式。如果根本不选择编码模式,它工作得很好。但是如果不选择编码,那么所有的图像都被视为jpg,这不是我想要的。

4

1 回答 1

1

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

于 2017-10-25T14:26:44.557 回答