wxpython отображает объединенное изображение

#image #wxpython #corrupt

#изображение #wxpython #поврежден

Вопрос:

У кого-нибудь есть процесс или решение для отображения поврежденного изображения с помощью wxpython. Для ясности изображение повреждено, но ACDSEE по-прежнему может его отображать (все, если оно отображается поврежденным), также программа просмотра факсов / изображений Windows по умолчанию может отображать изображение (все, если оно повреждено). Когда я пытаюсь обработать изображение с помощью wx, я получаю сообщение об ошибке, и мой скрипт останавливается:

     image.thumbnail((NewWidth, temp_height), Image.ANTIALIAS)
  File "C:Python27libsite-packagesPILImage.py", line 1559, in thumbnail
    self.load()
  File "C:Python27libsite-packagesPILImageFile.py", line 215, in load
    raise_ioerror(e)
  File "C:Python27libsite-packagesPILImageFile.py", line 52, in raise_ioerror
    raise IOError(message   " when reading image file")
IOError: broken data stream when reading image file
  

Я понимаю, что мог бы просто найти, где возникает ошибка, и «пропустить» любые поврежденные изображения, но я предпочел бы иметь возможность отображать их (чем пропускать их), несмотря на повреждение, как это могут две программы, о которых я упоминал выше. Любая помощь / предложения / рекомендации будут оценены.

К ВАШЕМУ сведению. Не отключая wx, мне это НРАВИТСЯ! Ms Paint не может отобразить изображение, оно изящно завершается сбоем и выдает сообщение о том, что изображение повреждено (эквивалент пропуска), а MS Picture Manager фактически зависает на изображении. Итак, если все согласны с тем, что wx просто не может обрабатывать поврежденные изображения, я готов принять это и добавлю «пропущенный» код для поврежденных изображений, но я хотел задать вопрос, прежде чем я это сделаю.

Ответ №1:

Я не думаю, что wxPython поддерживает это в настоящее время. Я бы просто создал какое-то неработающее изображение или сообщение по умолчанию, которое вы можете отобразить вместо этого. Вы также можете попробовать использовать саму библиотеку изображений Python для открытия изображения.

Если вы можете найти средство просмотра изображений с открытым исходным кодом, которое работает с поврежденными изображениями, вам следует взглянуть на их код, чтобы узнать, можем ли мы исправить wxPython.

Комментарии:

1. Спасибо, Майк. Я не думаю, что PIL также может обрабатывать поврежденные изображения. Я попытался обработать те же поврежденные изображения с помощью thumbnailctrl и получил ту же ошибку, что и в моем коде. Я просто сделал, как вы предложили, и создал поврежденный ответ изображения, когда столкнулся с поврежденным изображением.