【发布时间】:2018-03-15 18:50:58
【问题描述】:
我有相同的图像,其中一张是存储在我机器上的原始图像,另一张上传到 azure blob 存储并下载回我的本地机器。 这是一段代码(Python 3.6.3、Pillow-SIMD 4.3.0post0、libjpeg-turbo、ubuntu 17.10/alpine docker 容器):
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,但我得到的只是一张黑色图像-_-
请帮忙!
【问题讨论】:
标签: python-3.x pillow libjpeg libjpeg-turbo