8

我在 Ubuntu 11.04 下工作。我正在尝试在我的 Django 项目中使用 PIL。遗憾的是 PIL 无法加载我的图像。

这是 PIL 设置摘要:

PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available
--------------------------------------------------------------------

我尝试在 python shell 中编码,当我调用 load() 函数时它返回错误:

>>> import PIL
>>> import Image
>>> import _imaging
>>> i = Image.open("someimage.jpg")
>>> i
<JpegImagePlugin.JpegImageFile image mode=RGB size=600x599 at 0x9646C0C>
>>> i.load()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/joseph/Desktop/thesis/env/lib/python2.7/site-packages/PIL/ImageFile.py", line 215, in load
raise_ioerror(e)
File "/home/joseph/Desktop/thesis/env/lib/python2.7/site-packages/PIL/ImageFile.py", line 52, in raise_ioerror
raise IOError(message + " when reading image file")
IOError: broken data stream when reading image file

我也在虚拟环境中工作,在我的 Django 项目上上传 jpeg 图像时遇到问题。PNG 工作正常,但它拒绝 JPEG

4

3 回答 3

5
sudo apt-get install libjpeg8-dev

重建 PIL 并再次安装。

于 2011-10-06T08:30:07.107 回答
2

我遇到了同样的问题,但不幸的是我们使用的是只有 libjpeg 6b 的 RHEL。

进一步深入研究这个问题,当您使用的 JPEG 功能在您使用的 libjpeg 版本中不受支持时,似乎会发生此错误。就我而言,它是算术编码(在版本 7 中引入)。

我发现libjpeg 上的维基百科页面有助于确定哪些类型的 JPEG 文件可以由哪些版本打开。所以...

TL;博士

如果可以升级 libjpeg,或者将图像重新保存为基线 JPEG。

于 2012-12-24T17:19:34.193 回答
1

使用Pillow并在出现问题时报告问题,Pillow 团队将解决它们。与您的问题报告一起提交拉取请求的奖励积分。另见:https ://stackoverflow.com/a/7770547/185820

于 2013-03-27T11:37:30.210 回答