Sample 2

DownLoad DGCScreen Capture program

今回はちょっと視点を変えて、自作の支援プログラムについて書いてみる。

DGC は基本的に Direct Draw を全画面で使用することを前提として作られている。最新のバージョンではウィンドウモードも備えているが、今のままではとても使いにくい。更に言うなら 8 bit color にのみ対応しており(これも最新のものは HiColor 対応だがこれも今は無視する)、必然的にパレットを用いたプログラム作りをすることになる。

ところで、Direct Draw の全画面表示中に、[Print Screen] キーを押してみたことがあるであろうか? これはウィンドウズ標準の機能である、画面のキャプチャを行うことが出来るキーである。通常のデスクトップでは、[Print Screen] で全画面、[Alt]+[Print Screen] でアクティブなウィンドウのキャプチャが行われ、クリップボードにビットマップが代入されることになるが、Direct Draw 画面ではどうだろうか?

結果はやってみればすぐにわかるが、システムカラー以外のパレットがすべて黒になったビットマップが完成する。画面の配色次第では真っ黒で何も見えないはずだが、この時点では黒いパレットで正常に絵が描かれている。したがって、このままの状態でパレットの色だけを変更してやれば、元通りの絵(Direct Draw で表示したままの画面)が現れるはずである。

これだけわかれば後は簡単で、キャプチャした画面を読み込んだあと、パレットを正しく作り直せばよい。幸いにも DGC Image Library Editor にはパレットを入出力するコマンドが用意されている。DGC Image Library Editor でいったんビットマップを読み込み、ここに正しいパレットを読み込んでやればいいではないか。。。と思ったがうまくいかない。

DGC Image Library Editor でイメージを読み込んでやると、そのパレットを用いて最も近い画面が得られるように改めて配色しなおしてくれる。使われていないパレットエントリには追加したイメージのパレットをマージして使うが、同じ色のパレットが複数含まれていた場合にはすべて同じパレットで上書きしてしまう。結果、先ほどの真っ黒なビットマップは黒いパレットでベタ塗りされてしまい、まったく修復不可能となる。

気が利いているのか間が抜けているのかわからないが、これでは目的を達成することが出来ない。グラフィックソフトに読み込んでから手作業で1つ1つパレットの色を変更してやれば何とかなるが、毎回 250 ものパレットを入力するのは大変な手間である。また、世に数多ある画面キャプチャーソフトだが、Direct Draw の画面をキャプチャできるソフトは殆ど無く、あってもシェアウエアになっている。これだけのためにお金を払うのも馬鹿馬鹿しい。そこで今回のソフトの登場である。

使い方はドキュメントに書いておいたので説明を省くが、これを使えば簡単に DGCScreen の画面をビットマップに落とすことが出来る。自作ソフトのダウンロードコーナーでその威力を見ることが出来るので、一度覗いて見て欲しい。ちなみに、Paint Shop Pro を使えば同じことが出来るので、持っている人はそちらの方がいいだろう。方法は、Load Palette の時に Apply palette using を Maintain indexes にするだけだ。他にも同じことが出来るソフトはあると思うので、自分の持っているソフトでも確かめてみて欲しい。

もどる