在linux中使用python截屏(VM guest)

时间:2014-05-03 18:02:54

标签: python linux gtk virtual-machine screenshot

在回答similar stackoverflow question之后,我尝试运行此代码

import gtk.gdk

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "The size of the window is %d x %d" % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
    pb.save("screenshot.png","png")
    print "Screenshot saved to screenshot.png."
else:
    print "Unable to get the screenshot."

但是,生成的图像完全是黑色的。我的环境是linux mint 16在mac上的virtualbox中运行。黑色图像是运行Linux vm的结果,还是有另一个原因?

1 个答案:

答案 0 :(得分:3)

我很确定这是问题的VM。至少这对我来说。

有几个步骤可以确定哪个部分搞乱了,但是大多数步骤都存在问题,因为VM上的显示有问题。所以首先 使用方法:

 gtk.gdk.colormap_get_system() 

使用colormap并替换原始代码中的colormap。看看是否有变化。

如果这是死路一条,我建议如下:

关闭您的视频加速< ====此处修复了大部分问题

回滚然后更新视频/图形/ 3d驱动程序< ==这几乎不是问题

请确保您已获得pyscreenshot 的最新版本并重试屏幕截图

让我知道它是否仍然无法正常工作,我将逐步向您发送(它很长并且很多跳,但它涵盖了这个问题的所有内容。)