2012-09-25 24 views
1

我正在使用Python和Glade-3制作实时视频GUI,但是我发现很难将我已经创建的Numpy数组转换为可以在Glade中显示的东西。图像是黑色和白色,只有一个值可以给出每个像素的亮度。我希望能够在GUI中绘制图像,因此我不知道是否应该使用特定的格式(位图/像素图等)?如何在glade-3中显示2D numpy数组?

任何帮助将不胜感激!

回答

1

在最后,我决定以产生用于像素的缓冲器使用:

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

self.liveImage.set_from_pixbuf(self.pixbuf)

1

我觉得这些步骤需要:

  1. 使用scipy.misc.toimage到您的数组转换成PIL图像
  2. 退房的answer to this question您PIL图像转换成开罗表面
  3. 使用gdk_pixbuf_get_from_surface将其转换为pixbuf(我不知道它的名称是在python api中)
  4. 使Gtk.Image不在此使用Gtk.Image.new_from_pixbuf

对不起,它需要很多转换步骤。

+0

你也许可以使一些通过写一个函数来你的数组转换成开罗质地更好:我再从像素缓冲器中设置的图像。这可能会涉及更多的努力,但数百人会感谢你;-) – ptomato

+0

是的,我读了很多关于开罗纹理,但我从来没有真正使用它们。 – user1696811