Vista 時代のスクリーンショットの取り方 (1)

現在の XNA Game Studio ExpressWindows Vista をオフィシャルにはサポートしていないので,記事に使用するスクリーンショットWindows XP の方が良いだろうと Vista と XP を行ったり来たりしています.逆に言えば,この記事が一段落ついたら Windows XP をそろそろ消してしまってもいいかなというところでしょうか.何より来月になれば XNA GSE も晴れて Vista 対応です.
思い起こせば Windows XP で角の丸まったウィンドウがデフォルトになり,記事に使用するスクリーンショットの撮り方がややこしくなり始めました.Alt + PrintScreen を使用すると,角の部分で数ピクセル下の色が見えてしまうというものです.これは毎回 Photoshop で角の部分を削って (アルファ値 0 にして) 対処していました.
Windows Vista ではさらに事態が複雑になりました.1 つは ClearType がデフォルトでオンになったというものです.
ClearType は RGB 配列の LCD に特化したアンチエイリアシングを行う課程で,本来存在しない色を混ぜ込んでしまいます.私の場合 Windows XP でも基本的に ClearType はオンにしていますが,商用記事のスクリーンショットを撮るときだけは念のためオフにしていました.しかし Vista の登場もあり,記事掲載用のスクリーンショットで ClearType をオフにすべきかどうかは,そろそろ微妙な時期に来ているような気もします.
また,Aero によるウィンドウフレームの透過効果と,Desktop Composition によるドロップシャドウ効果の扱いも難しいところです.
ウィンドウフレームの透過効果は,背後ときれいにつながっていてこそ自然に見えるわけで,記事としてウィンドウのスクリーンショットのみを示したときに切り取られた一部の背景が映っているのは不自然です.これについては毎回下に純白のウィンドウを置いてスクリーンショットを撮るようにしています.
一方で,ドロップシャドウ効果はできれば残しておきたいとも思っています.そしてせっかく残すなら,アルファ値の形で残したいと思います.
アルファ値の形で影を残すのは,スクリーンショットを使用するときの背景色や背景イメージを後で決めたいからです.例えば (id:NyaRuRu:20070202:p2) で使用した Vista のダイアログのスクリーンショットは,影の部分にアルファ値が使用してあり,FirefoxInternet Explorer 7 では背景色とブレンドされて表示されているはずです.こうすることで,スタイルシートを変更して背景色を変えたり背景に別のイメージを表示したときでも,自然に影の効果を与えることができます.

Vista 時代のスクリーンショットの取り方 (2)

さて,この影付きスクリーンショットですが,以前は Photoshop でアルファ値の操作を行って手作業で作っていました.が,いい加減面倒になってきてツールでも作るかと思っていたところに,既にそういうツールがあるのを発見したので,今はありがたくそちらを使わせていただいています.窓の杜でも紹介されたので,ご存じの方もいらっしゃるかもしれません.

使用法についても,窓の杜のこの一文で尽くされています.

使い方は簡単で、本ソフトのタスクトレイアイコンをダブルクリックすると画面全体にぼかしなどの効果がかかるので、キャプチャーしたいウィンドウをマウスでダブルクリックすればよい。また、[PrintScreen]キーなどのホットキーにキャプチャー開始動作を割り当てることもできる。

アルファ値付きの影イメージを得るポイントは,オプション設定で PNG イメージをセーブするようにしておくところです.
下は「Window Clippings」でキャプチャした「Window Clippings」のオプション画面です.影がアルファ値であることがわかりやすいように,スタイルシートで背景画像を設定してみました.

オプションの「Clear window background」を使用すると,こんなイメージをキャプチャすることもできます.



実装について興味がある方は,作者である Kenny Kerr 氏の記事 (これは「Window Clippings」の公開場所でもあります),および Ian Griffiths 氏の次のエントリが参考になるでしょう.