【问题标题】:How to load a BMP file using wxPython on Windows?如何在 Windows 上使用 wxPython 加载 BMP 文件?
【发布时间】:2011-11-10 17:14:03
【问题描述】:

似乎 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.

我尝试添加第二行,但似乎并没有改变任何事情。

【问题讨论】:

  • 奇怪,WX 文档说 BMP 处理程序始终可用。我想您可以毫无问题地在 mspaint 中加载 sample.bmp
  • 是的,它会在 Paint 中加载,而且我用 Pain-t 打开并保存了图像,即使现在有不同的大小,它也不会加载。

标签: windows wxpython


【解决方案1】:

您可能需要先创建wx.App

import wx

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

【讨论】:

  • wx.InitAllImageHandlers() 可能存在错误,无法正常工作。 wx.App 还初始化处理程序。但也许没有人注意到,这样使用它并不常见。
  • 嗯,文档说:InitAllImageHandlers() - InitAllImageHanders 以前的功能现在在 _core_ 扩展模块内部完成,所以这个函数变成了一个简单的 NOP。
  • 这意味着 wxPython 的大时代,它远非一个 Python 库。现在它加载了 2/3 图像,并抱怨其中一张图像无效,但在 4 个不同的应用程序中仍然可以加载相同的图像而没有任何问题。
  • 可以分享一下损坏的图片吗?
  • 让我们以正确的方式来做吧,这里是 bug trac.wxwidgets.org/ticket/13650 的链接,您可以在其中找到附加的 BMP 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
相关资源
最近更新 更多