動作確認ディストリビューション †Webページのスクリーンショットを撮る方法(Xvfb + Firefox + ImageMagick) †通常、サーバー用途であまりXはインストールしないので、ほとんどインストールしたことないけれど、今回の目的を果たすべく、多分、初めて積極的に 、X関連をまとめてインストール。 X関連のパッケージグループ名を調べる。 # yum grouplist ・ ・ ・ X Window System ・ ・ ・ 「X Window System」だと判明するので、そいつをインストール。 # yum -y groupupdate "X Window System" で、今回はLinuxをデスクトップクライアントのような使い方、つまり【Windowsでブラウザ立ち上げて、「Print Screen」ボタンを押す】といった方法ではなくて、「X Virtual Frame Buffer(仮想フレームバッファ)」というソフトを使って、CUI(コマンドライン)で、擬似的にFirefoxを立ち上げたことにして、スクリーンショットを撮る。ってことをやるので、その「Xvfb」をインストールする。 # yum -y install xorg-x11-server-Xvfb 「Firefox」のインストール # yum -y install firefox このままだと、Flashを使用しているページのスクリーンショットが撮れないので、Flashのプラグインをインストールする。
# rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm # yum -y install flash-plugin 「ImageMagick」のインストール。 # yum -y install ImageMagick バイナリのパスを確認。
# rpm -ql xorg-x11-server-Xvfb |grep '\/bin\/' /usr/bin/Xvfb # rpm -ql firefox|grep '\/bin\/' /usr/bin/firefox # rpm -ql ImageMagick|grep '\/bin\/' /usr/bin/animate /usr/bin/compare /usr/bin/composite /usr/bin/conjure /usr/bin/convert /usr/bin/display /usr/bin/identify /usr/bin/import /usr/bin/mogrify /usr/bin/montage ディスプレイ番号を環境変数に設定。 # DISPLAY=:1.0 # export DISPLAY ディスプレイ番号が環境変数に正しく設定されたか確認。 # echo $DISPLAY :1.0 「Xvfb」を「ディスプレイ番号:1」、「スクリーン番号:0」、「幅:1024px」、「高さ:768px」、「ビット深度:24bit」で起動。 # Xvfb :1 -screen 0 1024x768x24 > /dev/null & 「Firefox」を「ディスプレイ番号:1(つまり、Xvfb上で)」、「幅:1024px」、「高さ:800px」で起動。 # firefox -display :1 -width 1024 -height 800 > /dev/null & 起動した「Firefox」で「http://www.lovebug.jp」を開く。 # firefox -display :1 -remote "openurl(http://www.lovebug.jp)" & 「X Window Dump」を利用してスクリーンショットを撮ります。
# WINID=`xwininfo -display :1.0 -root -tree | grep "Mozilla Firefox" | head -n 1 | sed -e 's/^[ ]*//' | cut -f 1 -d ' '` # xwd -display :1.0 -id $WINID -out webshot.xwd ImageMagickの「convert」を利用して、GIF画像に変換。 # convert webshot.xwd webshot.gif 「Xvfb」、「Firefox」を停止。 # killall firefox Xvfb |