Проблема в ручке PNG ПИЛОМ - PullRequest
2 голосов
/ 28 мая 2009
from PIL import ImageFile as PILImageFile

p = PILImageFile.Parser()

#Parser the data
for chunk in content.chunks():
    p.feed(chunk)    
try:
    image = p.close()
except IOError:                        
    return None
#Here the model is RGBA
if image.mode != "RGB":
    image = image.convert("RGB")

Это всегда застревает здесь:

image = image.convert("RGB")

File "C:\Python25\Lib\site-packages\PIL\Image.py" in convert
  653.         self.load()
File "C:\Python25\Lib\site-packages\PIL\ImageFile.py" in load
  189.                     s = read(self.decodermaxblock)
File "C:\Python25\Lib\site-packages\PIL\PngImagePlugin.py" in load_read
  365.         return self.fp.read(bytes)
File "C:\Python25\Lib\site-packages\PIL\ImageFile.py" in read
  300.             data = self.data[pos:pos+bytes]

Exception Type: TypeError at 
Exception Value: 'NoneType' object is unsubscriptable

1 Ответ

0 голосов
/ 04 августа 2013

Это происходит из-за неправильного кодирования закрытия в PIL, это ошибка.

Отредактируйте файл (путь может отличаться в вашей системе):

sudo vi /usr/lib64/python2.6/site-packages/PIL/ImageFile.py

Онлайн 283 Изменить:

def close(self):
    self.data = self.offset = None

Измените его на:

def close(self):
    #self.data = self.offset = None
    self.offset = None

Вот и все, закомментируйте неработающий код, добавьте правильную строку и сохраните файл. Все готово, просто запустите программу, которая раньше не работала, и теперь она будет работать.

...