2010/10/04

画面のスクリーンショットを保存

画像処理を行うImageユニットには、ウィンドウのスクリーンショット画像を取得する機能も用意されています。
例えば、下記のようにすることで、アクティブウィンドウのスクリーンショット画像を保存できます。
try{
    var img=require('Window').Window.active.capture();
    img.save('capture.png');
}finally{
    free(img);
}
スクリーンショット画像のImageオブジェクトを取得するには、Windowオブジェクトのcapture()メソッドを呼び出します。Imageオブジェクトが定義されているのはImageユニットですが、WindowオブジェクトはWindowユニットで定義されているので、「require('Window').Window~」のようにすることに注意してください。
なお、capture()メソッドの第1引数にtrueを指定すると、タイトルバーなどのノンクライアント領域を除いた部分の画像を取得することも可能です。

取得したImageオブジェクトはimg変数に代入し、そのsave()メソッドでファイルに保存しています。
最後にfree(img)で取得したImageオブジェクトの解放処理を呼び出す必要がある事に注意してください。

今回は単に保存しているだけですが、縮小したサムネイル画像や、Webページに埋め込むためのHTMLを生成したりしてもよいでしょう。
また、Hotstrokesでホットキーからキャプチャを実行したり、ウィンドウの状態変化を監視するWindow.observe()などを利用して特定のタイミングで自動キャプチャを行わせるなど、様々な応用ツールに利用できるはずです。

0 件のコメント:

コメントを投稿