如何从 wxPython Phoenix 中的缓冲区实例化流?
How to instantiate a stream from a buffer in wxPython Phoenix?
一些上下文:
- wxPython 版本 3.0.3.dev1836+f764b32 gtk2 (phoenix)
- Python2.7.3
- Ubuntu 12.04
我正在尝试从流创建图像。
未来图像当前从内存加载到缓冲区中。
我已经尝试过类似的东西:
image_stream = wx.MemoryOutputStream() # error: no attribute 'MemoryOutputStream'
image_stream.Write( image_buffer, buffer_size )
image = wx.Image( stream )
bitmap = wx.Bitmap( image )
基本上,wx.InputStream
、wx.OutputStream
和它们的所有祖先都是抽象的-类,我无法实例化它们。
如您所见here and there,他们的子类 的文档似乎丢失了。
从上面代码写的错误也可以看出,那些类还没有实现
有没有办法在 wxPython Phoenix 中实例化这样的流?或者解决方法?
顺便问一下,正如我将写入然后从流中读取的那样,它应该是输入流、输出流还是一个然后另一个?
wxImage
对象可以直接从任何支持 Python 缓冲区接口的对象创建,(字节数组、内存视图、numpy 数组等)见 this section in the Migration Guide and also the __init__
and Create
method overloads in the API documentation 有一个名为data
。
此外,任何Python"file-like object"都可以自动转换为wx流类,所以Image构造函数和Create方法重载其中接受一个stream
参数可以自动使用任何兼容的对象(打开的文件、StringIO 等),因此您不需要创建 wx.InputStream
或 wx.OutputStream
.
一些上下文:
- wxPython 版本 3.0.3.dev1836+f764b32 gtk2 (phoenix)
- Python2.7.3
- Ubuntu 12.04
我正在尝试从流创建图像。
未来图像当前从内存加载到缓冲区中。
我已经尝试过类似的东西:
image_stream = wx.MemoryOutputStream() # error: no attribute 'MemoryOutputStream'
image_stream.Write( image_buffer, buffer_size )
image = wx.Image( stream )
bitmap = wx.Bitmap( image )
基本上,wx.InputStream
、wx.OutputStream
和它们的所有祖先都是抽象的-类,我无法实例化它们。
如您所见here and there,他们的子类 的文档似乎丢失了。
从上面代码写的错误也可以看出,那些类还没有实现
有没有办法在 wxPython Phoenix 中实例化这样的流?或者解决方法?
顺便问一下,正如我将写入然后从流中读取的那样,它应该是输入流、输出流还是一个然后另一个?
wxImage
对象可以直接从任何支持 Python 缓冲区接口的对象创建,(字节数组、内存视图、numpy 数组等)见 this section in the Migration Guide and also the __init__
and Create
method overloads in the API documentation 有一个名为data
。
此外,任何Python"file-like object"都可以自动转换为wx流类,所以Image构造函数和Create方法重载其中接受一个stream
参数可以自动使用任何兼容的对象(打开的文件、StringIO 等),因此您不需要创建 wx.InputStream
或 wx.OutputStream
.