我正在尝试使用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,这不是我想要的。
答案 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