tty的X的屏幕截图


15

使用Xvfb,我可以启动一个应用程序并截图。

我想知道的是如何从现有(休眠)X会话中捕获。

从tty或通过ssh说。

据我了解,窗口是未映射的,并且不存在以保留资源。是否有一些工具可以映射虚拟windowmanager中的现有窗口,工作区等并快速捕捉?

还是可以libx11使用XShmCreateImage或类似方式使用并创建快照?


2
xwd -root | convert - /tmp/image.jpg你在找什么?
jippie 2012年

3
@jippie:也许吧。问题是,由于未映射窗口,因此xwd不会进行任何转储-导致黑色图像。(尝试从ie tty1命令xwd -display :0 -root | convert xwd:- /tmp/0.png
Runium 2012年

不确定“未映射”是什么意思
jippie 2012年

4
@jippie:它们不驻留在内存中。据我了解:当您在工作区中时-它处于活动状态-像素被映射到内存中供GPU处理并在屏幕上渲染。当工作空间被切换或退出时(即通过Ctrl-Alt-F1键),这些映射未映射(以释放资源)-因此“显示缓冲区”中没有任何内容-并给出了黑色图像。
Runium

我明白了你的意思,谢谢你的解释。但是在这种情况下不知道答案。
jippie 2012年

Answers:


7

我们可以从命令行手动“打开” X tty,而无需ctrl-alt-F(x)。

如果X在tty 7上,并且您登录文本终端

chvt 7 ; DISPLAY=0.0 xwd -root > screendump.xwd ; chvt 1

但是,必须在xsession中发出xhost + localhost,否则xwd无法连接到x服务器。

这使您可以从ssh会话执行此操作。

PS:理论上,使用MTD,应该可以从视频卡内存中进行屏幕捕获。因此,无需先“唤醒” X会话。


谢谢你的好帖子。我正在调查。我的主要问题之一是我是个老窗户工人,在掌握如何编织所有东西时遇到一些问题。X服务器,X窗口管理器,访问和组成。但是到达那里。
Runium

@Sukminder您是否难以设置或对此有更多说明?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.