WonderWitch.Com ■TOPネタ
・技その3「画面のキャプチャ方法」
BMP Saverを使ってスクリーンショットを作成する方法です。(2002/01/01追加)

・はい皆さん、「WWGP2002」用の応募作品はもう準備していますか? まだ構想を練ってる段階でしょうか?それとも開発中?まさかもう完成しちゃった人は……いませんでしょうか。とにかく、参加者全員にはもれなく参加賞がもらえてしまいますんで、ぜひぜひコンテストに応募してみましょう。「参加することに意義あり」です。

・さて今回、「WWGP2002」から導入されたルールで注意して欲しい点の一つに「スクリーンショットを添付する」というのがあります。スクリーンショットというのはソフトが動いている時の画像のこと(ようするに画面写真)ですが、仮にワンダースワンの液晶パネルをカメラで撮っても、あまり奇麗な画像にはなりません。そこで、専用のソフトウェアを使ってスクリーンショットを作成する方法を紹介します。

・スクリーンショットを取るにはWakuWakuさんの『BMPSaver & BMPSaver IL(画面取り込みツール)』がお勧めです。このツールを使うと、WonderWitch実行中の画面をWindowsでおなじみのBMP(ビットマップ)ファイルの形式で保存することができます。なお、『BMPSaver & BMPSaver IL(画面取り込みツール)』はワンダーウィッチサポートWebサイトからダウンロードできるようになりました。

◆「BMP Saver」使用法(ILを使う方法と使わない方法がありますが、ILを使って取り込む場合を紹介します)
・まず、“bmpsaver203.zip”をダウンロードします。ダウンロード後、そのファイルを解凍して、以下のファイルを取り出します。 “BMPSav_IL203/iL/bmpsaver.il”
“BMPSav_IL203/include/bsvilwp.h”
“BMPSav_IL203/include/bmpsvil.h”

・“bsvilwp.h”と“bmpsvil.h”というヘッダーファイルはパソコン上でソースの存在するフォルダか、“WWitch/include”にコピーして置いておきます。インダイレクトライブラリ“bmpsaver.il”はワンダーウィッチのプログラムエリア(FLASH ROM)内にコピーして置いておきましょう。

・ソースに「ヘッダーファイルの宣言」「ILの初期化」「スプライトのレンジの設定」「取り込むターゲットの設定」「取り込み命令」の記述が必要です。なので、以下の文を自作のプログラムのソースに追加して、コンパイルします。コンパイルが完了したら、生成された実行(FX)ファイルをワンダーウイッチに転送してから実行しましょう。


「(1)ヘッダファイルの宣言」
#include "bsvilwp.h"
ソースの最初のinclude文に追加します。

「(2)ILの初期化」
if (ilibIL->_open("@bmpsaver",(IL far *)&bsvIL) != E_FS_SUCCESS) {
/* error */
}
IL(インダイレクトライブラリ)“bmpsaver.il”を読み込みます。“bmpsaver.il”はあらかじめプログラムエリアに格納しておきましょう。

「(3)スプライトのレンジの設定」
bs_sprite_set_range(0,10);
取り込みたいスプライトの範囲を設定します。プログラム中の「sprite_set_range」と同じ引数にしておくといいでしょう。

「(4)取り込むターゲットの設定」
bs_set_target(KH_BS_SCREEN1 | KH_BS_SCREEN2 | KH_BS_SPRITE);
取り込みたい、スクリーンまたはスプライトを設定します。この命令を入れ忘れると、取り込んでも真っ白の画面しか保存されませんので注意しましょう。

「(5)取り込み命令」
if(key_press_check() & KEY_Y1) bs_save_screen("sample.bmp",0,0,224,144);
if(key_press_check() & KEY_Y2) bs_save_screen_xmodem("sample.bmp",0,0,224,144);
「bs_save_screen」ではワークエリア(SRAM)にBMPが保存され、「bs_save_screen_xmodem」ではX-MODEMによるシリアル通信でデータをBMPを転送します。なお、カラーで取り込みたい場合は関数名を「bsc_〜」にしましょう。

◆実行
・プログラムの実行中、「Y2」キーを押すと画面が取り込まれてX-MODEMで転送が行われます。・または「Y1」キーを押すとワークエリアにbmpファイルが作られます。
・取り込みの前に、あらかじめパソコン側では「TeraTerm」を実行させて、X-MODEMの受信待機状態にしておきます(通信設定のボーレートを38400bps、データ8、パリティなしに)。

・X-MODEMで受信中の様子です。
・転送で受け取ったファイルはBMP(ビットマップ)形式ではなく、FXファイルの形式になってしまいます。そこで、コマンドプロンプトで“mkfent -r (FXファイル名)”を実行させ、FXファイルのヘッダ情報を切り取って、バイナリファイルに変換します。
たとえば“aaa.fx”をバイナリファイル“aaa.bin”に変換したい場合、 「mkfent -r aaa.fx」 と実行します(「DOSプロンプト」、または「ファイル名を指定して実行」で入力)。

・あとは、“BIN”の拡張子を“BMP”に変更します。ペイントブラシなどで開いてみましょう。そしてこの画像をGIFやJPEGで保存すれば完成です。

(まとめです)

(2002/01/15追記)ワークエリアにBMPファイルを保存した場合の操作方法
・プログラムを止めて、ワークエリアにBMPファイルができているか確認しましょう(例“sample.bmp”)。
・ワンダーウィッチ側を「通信」にして、パソコン側で「TransMagic」を実行させます。
・接続後、表示エリアを「/ram0/」に切り換えて、ワークエリアからBMPファイルをダウンロードします。
・受信したファイルはヘッダー情報が付加されたFXファイルになっています(例“sample.bmp.fx”)。
「mkfent -r sample.bmp.fx」 と実行して(「DOSプロンプト」、または「ファイル名を指定して実行」で入力)、ヘッダ情報を取り去ります。拡張子に“bin”がついていますので、(例“sample.bmp.bin”)ファイル名を変更して、取り去れば完成です。



■TOP ▲BACK >NEXT

Presented by WonderWitch.Com 運営委員会