我有相同的图像,其中一个是存储在我的机器上的原始图像,另一个上传到azure blob存储并下载回我的本地机器。 这是一段代码(Python 3.6.3,Pillow-SIMD 4.3.0post0,libjpeg-turbo,ubuntu 17.10 / alpine docker container):
image_stream = open('src/app/resize/resizer/corrupted_blob.jpg', 'rb')
image = Image.open(image_stream)
image.load()
当解释器遇到.load方法时,会引发异常:OSError: image file is truncated (6 bytes not processed)
所以仅在corrupted_blob.jpg
时才会发生,corrupted_original.jpg
被加载并正确显示。
我知道第一个假设是“这是在上传期间发生的事情”,但是浏览器或windows / ubuntu图像查看器或其他软件使图像正确处理两个图像。所以有一些枕头或底层的libjpeg。
我尝试使用ImageFile.LOAD_TRUNCATED_IMAGES = True
,但我得到的只是一张黑色图片-_-
请帮忙!
答案 0 :(得分:0)
经过调查,我发现由于某种原因,后缀JPEG字节丢失了。这是解决方法:
{
todos: Array(2)
}
todos: (2)[{…}, {…}] __proto__:
Object