2

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

任何帮助将非常感激!

4

2 回答 2

2

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

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

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

self.liveImage.set_from_pixbuf(self.pixbuf)

于 2012-09-28T11:12:53.917 回答
1

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

  1. 用于scipy.misc.toimage将您的数组转换为 PIL 图像
  2. 查看此问题的答案,将您的 PIL 图像转换为 cairo 表面
  3. 用于gdk_pixbuf_get_from_surface将其转换为 pixbuf(我不知道它在 python api 中的名称)
  4. 用这个制作一个 Gtk.ImageGtk.Image.new_from_pixbuf

很抱歉,它需要这么多转换步骤。

于 2012-09-25T12:01:01.370 回答