Подушка, дающая неизвестный необработанный режим при сохранении после того, как на изображении было сделано определенное количество рисунков.

Я уже открывал вопрос здесь (https://github.com/python-imaging/Pillow/issues/646), но мне не везет с ответами. Используя Pillow, я беру большой белый файл .gif и рисую на нем много линий и текста. Он отлично работает, пока я не сделаю слишком много вызовов отрисовки. Кажется, это зависит от того, сколько рисуется на изображении. Например, я могу рисовать больше мелких линий, чем крупных. Слишком много розыгрышей, и я получаю эту ошибку:

File "draw/card.py", line 13, in save
  self.image.save(os.path.join(os.path.dirname(os.path.abspath(__file__)), '%s.gif' % file_name), 'gif')
File ".../local/lib/python2.7/site-packages/PIL/Image.py", line 1564, in save
  save_handler(self, fp, filename)
File ".../local/lib/python2.7/site-packages/PIL/GifImagePlugin.py", line 317, in _save
  ImageFile._save(imOut, fp, [("gif", (0,0)+im.size, 0, rawmode)])
File ".../local/lib/python2.7/site-packages/PIL/ImageFile.py", line 473, in _save
  e = Image._getencoder(im.mode, e, a, im.encoderconfig)
File ".../local/lib/python2.7/site-packages/PIL/Image.py", line 413, in _getencoder
  return encoder(mode, *args + extra)
SystemError: unknown raw mode

Я удалил полные пути к файлам, но .../local/lib находится в моем virtualenv

Это известная ошибка, или я делаю что-то не так, или я нашел что-то не так с PIL?


person chas11man    schedule 06.05.2014    source источник


Ответы (1)


Это ошибка в подушке. Из комментария wiredfool:

Для дальнейшего использования людьми, пришедшими из поисковых систем, это ошибка. Могу повторить на своей машине.

Существует простой обходной путь — перед сохранением изображения в формате gif конвертируйте его в режим «P».

person Hugo    schedule 10.05.2014
comment
Спасибо. Это не позволило бы мне самому ответить на этот вопрос, когда мы с ним выяснили ответ. - person chas11man; 13.05.2014