我正在尝试获取jpeg的RGB值数组。使用代码
from PIL import Image
im = Image.open('lion.jpg')
pix = list(im.getdata())
给出错误
IOError: broken data stream when reading image file
但代码会为我尝试的每张图片返回相同的错误,来自各种来源(谷歌,手机等)。当我向前推进并加载图像时,所有像素值都是黑色。
我已经尝试过了
from PIL import Image, ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
但所有这一切都是为了抑制错误;像素值仍为黑色。
似乎其他人在其他地方遇到过这个问题,比如here,但到目前为止,其他解决方案都让我失望了。有什么建议吗?
我在Mac 10.10上,使用python 2.7.8。我首先使用pip
安装枕头,然后从源头安装枕头。我已确认已安装libjpeg
。
答案 0 :(得分:0)
我真的没有答案,但是我可以为你提供适合我的设置。
以下脚本:
from PIL import Image
if __name__ == '__main__':
im = Image.open('lion.jpg'))
pix = list(im.getdata())
print('The image has {} pixels'.format(len(pix)))
import PIL, sys
print('Using Python version {}'.format(sys.version))
print('Using PIL version {}'.format(PIL.VERSION))
print('Using Pillow version {}'.format(PIL.PILLOW_VERSION))
使用OS X El Capitan(10.11.6)在我的Macbook上获得结果:
The image has 1183000 pixels
Using Python version 3.5.1 |Continuum Analytics, Inc.| (default, Dec 7 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)]
Using PIL version 1.1.7
Using Pillow version 3.1.0
Process finished with exit code 0