Я публикую изображение в формате jpg на своем веб-сайте (сборка на django), но я получаю «OSError в URL-адресе XXXX / XXX сломанный поток данных при чтении файла изображения», когда я использую подушку, чтобы справиться с этим
это происходит при запуске кода на сервере:
if request.FILES:
img = request.FILES['img']
ftype = img.content_type.split('/')[1]
image = Image.open(img)
imagefit = ImageOps.fit(image, (200, 200), Image.ANTIALIAS)
fpath = MEDIA_ROOT+'avatar/'+user.username+'.'+ftype
getpath = 'avatar/'+user.username+'.'+ftype
imagefit.save(fpath,ftype)
и трассировка:
view:
imagefit = ImageOps.fit(image, (200, 200), Image.ANTIALIAS)
/PIL/ImageOps.py in fit:
(leftSide, topSide, leftSide + cropWidth, topSide + cropHeight)
/PIL/Image.py in crop:
self.load()
/PIL/ImageFile.py in load:
raise_ioerror(e)
/PIL/ImageFile.py in raise_ioerror:
raise IOError(message + " when reading image file")
message 'broken data stream'
error -2
img <InMemoryUploadedFile: 169902.jpg (image/jpeg)>
ftype 'jpeg'
image <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1650x2550 at 0xB5CCBECC>
Я использую Ubuntu 13.10 (32 бит), python3, подушку 2.4.0, и я установил libjpeg8-dev, python3-dev python3-imaging и переустановил подушку (в virtualenv), но не исправил
libjpeg
. Этот ответ указывает, что может помочь понижение доlibjpeg
6b (и переустановитеPIL
снова). Вы также можете попытаться узнать, какие функции используются в вашем файле JPEG, например. сidentify
от ImageMagick. - person Lukas Graf   schedule 03.05.2014