Mne*_*quo 7 linux screenshot command-line window
我使用一个程序来制作一个大图像,我必须滚动才能查看。该程序无法保存图像,我也无法访问源来修改它。我必须从程序中获取图像的唯一方法是通过屏幕截图。我的目标是保存完整尺寸的图像而不必拼凑单个屏幕截图。
我正在使用此脚本尝试截取屏幕截图:
#!/bin/bash
window=$(wmctrl -l | grep "Program$" | awk '{print $1}')
wmctrl -v -i -r $window -e '0,0,0,6030,5828'
wmctrl -i -a $window
import -window $window ~/Desktop/screenshot.png
Run Code Online (Sandbox Code Playgroud)
这使用 wmctrl 来获取名为“Program”的窗口的窗口 ID($window)。然后它尝试将窗口大小调整为所需的尺寸。它使用 imagemagick(导入)在用户桌面上保存一个 screenshot.png。除了调整大小步骤之外,所有这些都有效。
我可以使用 wmctrl -r -e 调整窗口大小,但是大于屏幕大小的大小不起作用。
我正在使用 Ubuntu 10.04 和 Gnome 桌面。我运行了两台显示器,但我试过其中一台被禁用。
有没有办法调整比我的屏幕大的窗口大小以获得巨大的屏幕截图?
第二部分:
感谢 sdaau 的回答,我尝试使用 xrandr 设置屏幕平移,以便拥有比显示器更大的桌面。
xrandr --output LVDS --panning 2600x2500
Run Code Online (Sandbox Code Playgroud)
此命令使笔记本电脑屏幕在 2600x2500 大小的桌面上平移,即使它一次只能显示 1440x900。要关闭平移,我可以使用类似的命令来设置平移部分的总大小和零。这让我恢复了原来的笔记本电脑显示行为。
xrandr --fb 1440x900 --output LVDS --panning 0x0
Run Code Online (Sandbox Code Playgroud)
这一切都是用 xrandr 完成的,不需要任何 Xorg.conf 更改(我的 Ubuntu 系统甚至没有 Xorg.conf)。
我的视频卡似乎只允许大约 650 万像素,即使最大尺寸是 8192x8192。该最大值似乎是任一维度的最大值,但可以绘制的像素数是有限制的,即宽度乘以高度。
调整屏幕大小后,我再次尝试了我的脚本并获得了屏幕截图。然而,屏幕截图完全混乱。我不确定它是否无法截取屏幕外窗口的屏幕截图,或者是否无法处理窗口的大尺寸。使用平移显示,窗口应该认为它是可见的,而窗口管理器应该认为它在屏幕上。所以在某个地方有一个像素缓冲区,里面有这些像素,所以应该有一种方法来获取屏幕截图。
也许有另一种截取屏幕截图的方法可能比导入更好。
刚刚测试过import,窗口超出/大于屏幕尺寸;它似乎import会捕获与大窗口大小相同大小的图像 - 不幸的是,超出屏幕大小的所有像素以及其他窗口覆盖的所有像素都将是黑色的。
因此,也许唯一的方法是使用xrandr放大屏幕尺寸(如“屏幕平移”) - 或者使用其他可以提供更大屏幕尺寸的东西:例如,“如何以比我的浏览器更高的分辨率截取浏览器屏幕截图支持? - 超级用户》注释:
用于
Xephyr创建嵌套的 X 会话
(Xephyr显然是在sudo apt-get install xserver-xephyrUbuntu 中)
希望这有帮助,
干杯!
编辑:是的,xrandr对我来说,可以使用通常的打印屏幕(也可以使用import,只需要足够的空间来容纳终端,因此它不会与目标窗口重叠),只需记下其中的虚拟大小xorg.conf(请参阅“xrandr:屏幕不能比大” ...)
| 归档时间: |
|
| 查看次数: |
4387 次 |
| 最近记录: |