2009年6月5日金曜日

ImageMagickでスクリーンショット

ImageMagickに含まれているimportコマンドで、特定のウィンドウや、デスクトップの指定範囲のスクリーンショットを簡単に撮ることができる。

% import screenshot.png

のようにするとマウスカーソルの形が変わり、目的のウィンドウをクリックすれば、そのウィンドウのスクリーンショットがscreenshot.pngに保存される。ウィンドウの枠も含めるには-frameオプションを使う。また、クリックではなくドラッグで範囲を選択した場合はその部分が保存される。

他にもオプションを組み合わせることでいろいろできる。

デスクトップ全体のスクリーンショットを撮る。

% import -window root screenshot.png

デスクトップの左上512x256ピクセルのスクリーンショットを撮る。

% import -window root -crop 512x256-0+0 screenshot.png

3秒後にスクリーンショットを撮る。

% import -pause 3 screenshot.png

3回続けてスクリーンショットを撮る。それぞれscreenshot-0.pngscreenshot-1.pngscreenshot-2.pngという名前で保存される。

% import -snaps 3 screenshot.png

ウィンドウの指定は、-windowオプションにウィンドウIDを渡すことでもできる。ウィンドウIDを調べるにはxwininfoを使えばいい。実行するとマウスカーソルの形が変わるので、目的のウィンドウをクリックすればウィンドウIDを含む様々な情報が表示される。

マウスで選択したウィンドウのスクリーンショットを1秒間隔で10回連続撮る。

% import -window `xwininfo | grep -oP '(?<=Window id: )\S+'` -snaps 10 -pause 1 screenshot.png

参考