IOError:读取图像文件

时间:2017-10-24 15:45:50

标签: python thumbnails gif pillow raspistill

我正在尝试使用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编码模式的raspistill相机拍摄的照片上。如果根本不选择编码模式,则效果很好。但如果不选择编码,则所有图像都被视为jpg,这不是我想要的。

1 个答案:

答案 0 :(得分: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