按照这个 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."
但是,生成的图像是全黑的。我的环境是在 mac 上的 virtualbox 中运行的 linux mint 16。黑色图像是运行 linux vm 的结果,还是有其他原因?
最佳答案
我很确定这里的问题是 VM。至少对我来说是这样。
有几个步骤可以找出哪个部分出了问题,但大多数步骤与 VM 上的显示问题有关,而 VM 上的色图也有问题。所以首先 使用:
gtk.gdk.colormap_get_system()
获取要使用的颜色图并替换原始代码中的颜色图。看看有没有变化。
如果这是一个死胡同,我会建议如下:
关闭您的视频加速 <====绝大多数问题已在此处修复
回滚然后更新您的视频/图形/3d 驱动程序 <==这几乎从来不是问题
确保您拥有最新版本的 pyscreenshot 并重试截图
如果它仍然不起作用,请告诉我,我会向您发送完整的分步说明(它很长,跳来跳去很多,但它涵盖了与此问题有关的几乎所有内容。)
关于python - 在 linux 中使用 python 截取屏幕截图(VM guest ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23448048/