我正在 Google Cloud 中运行无头 Ubuntu 16.04 LTS。我需要在后台运行一个需要 GUI 的应用程序。我正在尝试使用 Xvfb 来允许程序运行,但由于程序需要一些 GUI 输入,我还需要截取屏幕截图以查看需要哪些输入。
但是,我在截图时遇到了麻烦。为了测试截图的过程,我安装并运行 Firefox,导航到 google。我用两种方式截取屏幕截图,使用 scrot 和使用 imagemagick。这两种方法都会产生一个黑色图像,其中带有谷歌主页的提示(参见附图)。颜色和细节阻止使用屏幕截图来解释所显示的内容。是什么导致缺乏细节?我该如何解决这个问题?
相关命令如下:
sudo apt-get install xvfb xorg xserver-xorg scrot imagemagick
Xvfb :1 &
export DISPLAY=:1
DISPLAY=:1 firefox https://www.google.com &
DISPLAY=:1 scrot
DISPLAY=:1 import -window root tmp_screenshot.png
答案1
我在使用时也遇到过类似的问题xvfb-run
。
根据xvfb-运行(1)手册页中,默认分辨率为 640x480x8,因此只有 8 位颜色。请参阅选项 [-s]。
解决方案是将颜色深度强制为 16 位,如下所示:
xvfb-run -s '-screen 0 1280x800x16'