如何从像素矩阵中显示图像?

时间:2014-09-24 18:03:59

标签: python image gtk gtk3

在Python和Gtk3中,当我有一个图像文件时,我可以像这样显示那个图像

image = Gtk.Image()
image.set_from_file(file_name)

但如果我有一个像以下

的矩阵
[[ 10, 120,  38,  75, 189],
 [200, 122, 130,   0,  29],
 [255,  11, 102, 222,  18],
 [ 36, 118, 199,  45,  26],
 [231, 218,  12,   5, 156]]

表示灰度图像的像素,是否有一种方法可以直接从该矩阵显示该图像,而不必将其保存到图像文件然后加载该文件?

1 个答案:

答案 0 :(得分:1)

我只使用过Gtk2,但我同意尼克建议查看gtk.gdk.Pixbuf

来自链接的文档:

  

gtk.gdk.Pixbuf对象包含描述图像的数据   使用客户端资源。相比之下,gtk.gdk.Pixmap使用服务器   保存图像数据的边资源。操纵图像数据   gtk.gdk.Pixmap可能涉及客户端和客户端之间的往返转移   服务器在X11中操作gtk.gdk.Pixbuf中的图像数据   仅涉及客户端操作。因此使用gtk.gdk.Pixbuf   如果a,对象可能比使用gtk.gdk.Pixmap对象更有效   很多图像处理是必要的。

特别是,请查看pixbuf_new_from_array()方法。要执行相反的操作,您可以使用get_pixels_array()方法。这些方法可让您访问Pixbuf的pixel_array属性。

您可以使用gtk.gdk.Drawable.draw_pixbuf()呈现Pixbuf。