トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   一覧 最終更新   ヘルプ   最終更新のRSS
 


動作確認ディストリビューション

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のプラグインをインストールする。
ただし、Flashプラグインをインストールすると、Firefoxがかなりの確立というか100%???落ちたので、実は、今回すぐにアンインストールした。
なので、一応インストールの仕方だけ載せておくことにします。

# 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

バイナリのパスを確認。
「Xvfb」、「Firefox」、「ImageMagick」のいずれもコマンドサーチパスが通ってるところにインストールされてます。(RPMで入れてるので当たり前だが。。。)

# 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」を利用してスクリーンショットを撮ります。
※スクリーンショットを撮る際に、無駄な領域を削ってます。
※もちろん、ImageMagickの「import」コマンドで撮るのも可。

# 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

Last-modified: 2009-04-19 (日) 02:04:34 (3531d)