2006-07-02

import コマンドで遅延取り込み

Linux でスクリーン・ショットを撮る時、ぼくは ImageMagick の import コマンドを使ってる。標準的な Linux デストリビューションなら、デフォールトで入ってるコマンドなので、ご存じの方も多いでせう。

使い方は、コマンド・ラインから

$ import foo.png

と打つ。すると、カーソルが十字型になるので、スクリーン・ショットを撮りたいウィンドウを (その十字カーソルで) クリックする。これで、foo.png という画像ファイルが出来るという流れ。import コマンドは、与えられた引数の拡張子を見て画像形式を決める。今回の例だと、拡張子は .png なので PNG 画像が出来る。蛇足ながら付け加えると、.gif なら GIF ファイルになるし、.jpg なら JPEG ファイルが出来る。

遅延取り込み

import コマンドでスクリーン・ショットを撮る手順を復習すると、次の通り。

  1. スクリーン・ショットとして取り込みたい画面を用意する。
  2. コマンドラインで import を実行する。
  3. ウィンドウをクリックする

1. から 2. で、スクリーン・ショットを撮りたいウィンドウからコマンドライン (ターミナル) にフォーカスが移る。ここに問題があって、フォーカスが移った時点でウィンドウ内が変化してしまうものがある。例えば、メニューのプルダウン・メニュー。プルダウン・メニューを下ろして他のウィンドウにフォーカスを移すと、プルダウンが解除されてしまう。スクリーン・ショットの目的が、プルダウン部分を撮ることにある場合、これは非常に困る。

この問題は、遅延取り込みで解決できる。

具体的には、次のコマンドを実行する。

$ sleep 10; import foo.png

sleep コマンドは、引数秒だけコマンドの実行を止める。つまり、この場合、10 秒後に import コマンドを実行されるというわけ。

この 10 秒の間に、プルダウン・メニューを下ろす。10 経つと、import コマンドが実行されてカーソルが十字型に変わるので、それを待ってウィンドウをクリックしてスクリーン・ショットを撮る。

あとがき

スクリーン・ショットの遅延取り込みは、前の記事で Google Reader の subscription selector ポップアップのスクリーン・ショットを撮るのに使った。遅延取り込みに sleep コマンドを使う方法は、下記の記事で知った。

目新しいテクニックでもないと思うけど、自分一人では思いつかなかったので、メモ記事にしとく。

No comments:

Post a Comment