如何在glade-3中显示2D numpy数组?

时间:2012-09-25 09:37:51

标签: python arrays numpy gtk glade

我正在使用Python和Glade-3制作实时视频GUI,但我发现很难将我拥有的Numpy数组转换为可以在Glade中显示的内容。图像是黑白的,只有一个值可以给出每个像素的亮度。我希望能够在GUI中绘制图像,所以我不知道是否有我应该使用的特定格式(位图/像素图等)?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

最后我决定使用以下方法为像素创建缓冲区:

self.pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,0,8,1280,1024)

然后我从像素缓冲区设置图像:

self.liveImage.set_from_pixbuf(self.pixbuf)

答案 1 :(得分:1)

我认为这些是您需要的步骤:

  1. 使用scipy.misc.toimage将您的数组转换为PIL图像
  2. 查看answer to this question以将您的PIL图像转换为cairo表面
  3. 使用gdk_pixbuf_get_from_surface将其转换为pixbuf(我不知道它在python api中的名称)
  4. 使用Gtk.Image.new_from_pixbuf
  5. 制作一个Gtk.Image

    对不起,需要这么多转换步骤。