在回答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的结果,还是有另一个原因?
答案 0 :(得分:3)
我很确定这是问题的VM。至少这对我来说。
有几个步骤可以确定哪个部分搞乱了,但是大多数步骤都存在问题,因为VM上的显示有问题。所以首先 使用方法:
gtk.gdk.colormap_get_system()
使用colormap并替换原始代码中的colormap。看看是否有变化。
如果这是死路一条,我建议如下:
关闭您的视频加速< ====此处修复了大部分问题
回滚然后更新视频/图形/ 3d驱动程序< ==这几乎不是问题
请确保您已获得pyscreenshot 的最新版本并重试屏幕截图
让我知道它是否仍然无法正常工作,我将逐步向您发送(它很长并且很多跳,但它涵盖了这个问题的所有内容。)