2012-09-25 63 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