Как загрузить BMP-файл с помощью wxPython в Windows?

#windows #wxpython

#Windows #wxpython

Вопрос:

Кажется, что в wxPython отсутствуют «некоторые» примеры.

У меня есть следующий фрагмент кода, который не работает в Windows:

 import wx
wx.InitAllImageHandlers() # calling it doesn't make any difference 
print wx.Image("sample.bmp") # also tried with type=wx.BITMAP_TYPE_ANY
  

Возвращаемое значение равно None , и я также вижу предупреждение: Warning: No handler found for image type.

Я попытался добавить вторую строку, но, похоже, это ничего не меняет.

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

1. Странно, в документах WX говорится, что обработчик BMP всегда доступен. Я полагаю, вы можете загрузить sample.bmp в mspaint без проблем?

2. Да, он загружается в Paint, а также я открыл и сохранил изображение с помощью Pain-t, и даже если теперь у него другой размер, оно не загружается.

Ответ №1:

Вероятно, вам нужно wx.App сначала создать.

 import wx

app = wx.App(False)
print wx.Image("wallpaper.bmp")
  

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

1. Может быть ошибка с wx.InitAllImageHandlers() неправильной работой. wx.App также инициализирует обработчики. Но, возможно, никто не заметил, что это необычно использовать таким образом.

2. Хм, в документах говорится: InitAllImageHandlers() — Прежняя функциональность InitAllImageHanders теперь выполнена внутренней по отношению к модулю расширения _core_, и поэтому эта функция стала простым NOP.

3. Это означает, что wxPython пользуется большим успехом, и это далеко не библиотека pythonic. Теперь он загружает 2/3 изображений и жалуется на недопустимое изображение на одном из них, все те же изображения загружаются без каких-либо проблем в 4 разных приложениях.

4. Можете ли вы поделиться поврежденным изображением?

5. Давайте сделаем это надлежащим образом, вот ссылка на ошибку trac.wxwidgets.org/ticket/13650 где вы найдете BMP-файл, прикрепленный к.