#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-файл, прикрепленный к.