2016-05-12 287 views
2

我试图读取使用枕头jpg文件(版本3.2.0)(Python的3.4)失败,但失败,出现以下错误:阅读图像中Jupyter笔记本Jupyter笔记本

OSError: broken data stream when reading image file

我使用下面的代码:

from PIL import Image 
im = Image.open("/path/to/image.jpeg") 
im.show() 

它正常工作,无论是在交互式Python外壳,并使用Python 2.7,而不是3.4。

我已经按照这些步骤:Using Pillow with Python 3

任何一个想法,这是怎么回事?

回答

1

看起来你并没有指向存储照片的目录。

import os 
defaultWd = os.getcwd() 
defaultWd # Sets your curretn wd 

os.chdir(defaultWd + '\\Desktop') # Points to your photo--e.g., on Desktop 
os.getcwd() # Shows change in wd 

from PIL import Image 
im = Image.open("Mew.jpg") 
im.show() # Will plot to your default image viewing software 

如果你不想改变目前的WD另一种方式:

im = Image.open(os.getcwd() + "\\Desktop\\Mew.jpg") 
im.show() 

如果你想绘制在线:

from matplotlib.pyplot import imshow 

%matplotlib inline 
inlinePic = Image.open(os.getcwd() + "\\Desktop\\Mew.jpg") 
imshow(inlinePic) 

注意:您可能还需要只需像上面那样输入'jpg'而不是'jpeg',如果你的图像在你当前的工作目录中。另外,如果PIC未安装,您将会收到此错误NameError: name 'Image' is not defined

+0

我正在使用绝对路径。为了便于阅读,我从代码片段中删除了它。读取文件时发生问题。这与绘图无关。如果我用'im'替换'im.show()',也会出现这种情况 – aecker