尝试将像素图保存为png文件时的ValueError

Hes*_*sam 10 python gtk pixmap

如何将pixmap保存为.png文件?
我这样做:

    image = gtk.Image()
    image.set_from_pixmap(disp.pixmap, disp.mask)
    pixbf=image.get_pixbuf()
    pixbf.save('path.png')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

    pixbf=image.get_pixbuf()
    ValueError: image should be a GdkPixbuf or empty
Run Code Online (Sandbox Code Playgroud)

Bha*_*Rao 10

文档中,

get_pixbuf()方法得到了gtk.gdk.Pixbuf显示gtk.Image.如果没有设置图像数据,则该return值可以None是.如果图像的存储类型不是 gtk.IMAGE_EMPTYgtk.IMAGE_PIXBUF所述ValueError异常将引发.

(重点我的)

由于您需要png文件,您可以按照此处的说明操作

pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,has_alpha=False, bits_per_sample=8, width=width, height=height)
pixbuf.get_from_drawable(disp.pixmap, disp.pixmap.get_colormap(), 0, 0, 0, 0, width, height)
pixbuf.save('path.png')
Run Code Online (Sandbox Code Playgroud)

这将创建一个pixbuf来自你pixmapdisp.pixmap.这可以稍后使用保存pixbuf.save