我正在尝试加载我的.jpg文件并引发错误,但如果我再试一次,那就没关系!为什么?
我的代码和错误:
>>> import Image
>>> im1 = Image.open('/tmp/test.jpg')
>>> im1.load()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/PIL/ImageFile.py", line 201, in load
raise IOError("image file is truncated (%d bytes not processed)" % len(b))
IOError: image file is truncated (0 bytes not processed)
>>> im1.load()
<PixelAccess object at 0x7feffc2a1170>
>>>
谢谢!
答案 0 :(得分:20)
我遇到了同样的问题,并提出了一个我在此讨论的解决方案:https://stackoverflow.com/a/23575424/3622198。
在代码块之前的某个地方,只需添加以下内容:
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
......你应该好好去!
编辑:看起来这对Pillow捆绑的PIL版本有帮助(&#34; pip install pillow&#34;),但可能不适用于PIL的默认安装
答案 1 :(得分:8)
PIL使用延迟加载,这意味着在您尝试对其执行操作之前,实际上不会从文件中读取图像。对load
的第一次调用是第一次操作,因此在检测到文件格式的问题时。对load
的第二次调用不会再次读取文件,它只返回加载文件时缓存的信息。