![Xvfb のスクリーンショットが色の痕跡とともに黒くなるのはなぜですか (Ubuntu 16.04 LTS)](https://rvso.com/image/168807/Xvfb%20%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E3%81%8C%E8%89%B2%E3%81%AE%E7%97%95%E8%B7%A1%E3%81%A8%E3%81%A8%E3%82%82%E3%81%AB%E9%BB%92%E3%81%8F%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%20(Ubuntu%2016.04%20LTS).png)
Google Cloud でヘッドレス Ubuntu 16.04 LTS を実行しています。バックグラウンドで実行する必要があるアプリケーションがあり、これには GUI が必要です。Xvfb を使用してプログラムを実行できるようにしようとしていますが、プログラムには GUI 入力が必要なので、必要な入力を確認するために画面のスクリーンショットを撮る必要もあります。
しかし、スクリーンショットを撮るのに問題があります。スクリーンショットを撮るプロセスをテストするために、Firefox をインストールして実行し、Google にアクセスしました。スクリーンショットを撮るには、scrot と imagemagick の 2 つの方法があります。どちらの方法でも、Google ホームページのヒントが入った黒い画像ができます (添付画像を参照)。色と詳細により、スクリーンショットでは表示されている内容を解釈できません。詳細が欠けている原因は何ですか。また、これを修正するにはどうすればよいですか。
関連するコマンドは以下のとおりです。
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-run(1)man ページによると、デフォルトの解像度は 640x480x8 なので、8 ビット カラーのみとなります。オプション [-s] を参照してください。
解決策は、次のように色深度を 16 ビットに強制することでした。
xvfb-run -s '-screen 0 1280x800x16'