Up

Visual C++で作成した画像をViSaGeに表示する

Displaying an Image by Visual C++ on ViSaGe System

 

 Visual C++で作成した画像ファイルをViSaGeで表示した。画像はビットマップファイルとして作成するため、Bitmapオブジェクトを以下のように用意する。

        Bitmap ^ bm = gcnew Bitmap( fw, fh, Drawing::Imaging::PixelFormat::Format24bppRgb );

このBitmapオブジェクトbmは、コンストラクタBitmapの第3引数をFormat24bppRgbとして24ビットのビットマップ形式で作成されていることに注意。bmに作成された画像は、ビットマップ形式で以下のように保存する

        bm->Save( "mysample24.bmp", Drawing::Imaging::ImageFormat::Bmp );

メソッドSaveの第2引数にBmpが設定されていることに注意。

 上のメソッドSaveの実行によって保存されたファイルをViSaGeに読み込むときは、VideoModeを次の関数の呼び出しによってtrue color modeに設定しておく。

        ::vsgSetVideoMode(vsgTRUECOLOURMODE);

その後、以下の関数の実行により、ViSaGeのディスプレイに指定した画像ファイルが表示される。

        ::vsgSetDrawPage(vsgVIDEOPAGE, 0, 0);

        ::vsgSetDrawMode(vsgCENTREXY);

        ::vsgDrawImage(0, 0, 0, "mysample24.bmp" );

 Visual C++による画像ファイルの作成とViSaGeによる表示は、以下の一連のコードの実行により行うことができる。

        ::vsgInit("");

        ::vsgSetVideoMode(vsgTRUECOLOURMODE);

 

        int fh = 400, fw = 500;

        Bitmap ^ bm = gcnew Bitmap( fw, fh, Drawing::Imaging::PixelFormat::Format24bppRgb );

        Graphics ^ g = Graphics::FromImage( bm );

        Brush ^ bsh = gcnew SolidBrush( Color::White );

        g->FillRectangle( bsh, 0, 0, fw, fh );

        Brush ^ bshB = gcnew SolidBrush( Color::Blue );

        g->FillRectangle( bshB, 100, 100, fw-200, fh-200 );

        bm->Save( "mysample24.bmp", Drawing::Imaging::ImageFormat::Bmp );

 

        ::vsgSetDrawPage(vsgVIDEOPAGE, 0, 0);

        ::vsgSetDrawMode(vsgCENTREXY);

        ::vsgDrawImage(0, 0, 0, "mysample24.bmp" );

 上のコードの実行により、白地の中央に青色の長方形が描かれた画像がViSaGeのディスプレイ上に表示される。

 

 なお、Visual C++ 2008の無料版は

http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/

からダウンロードすることができる。Visual C++ 2010も無料版があるが、ドットネット・プログラミングを行う場合はVisual C++2008の方がよい。新しいのが好みの場合は、Visual Studio 11 Betaがダウンロードできるので(20125.19現在)、こちらを勧める。Visual Studio 11 Beta

http://www.microsoft.com/visualstudio/11/ja-jp/downloads

からダウンロードできる。ただし、Visual C++ 11Visual C++ 2010と相性が良くないようである。

 

 Visual C++による描画の説明は、<岡本安晴「大学生心理学VC++プログラミング入門勁草書房>の第14章「描画」で行っている。本書で取り上げられていない事柄は、Visual C++のサンプルプログラムのウェブサイト

http://y-okamoto-psy1949.la.coocan.jp/VCpp/

でいろいろ扱っている。透明色の透明度を指定した画像のコピーの方法は、マスクを用いた画像のオーバーレイに使用できるが、この透明度を指定した画像のコピーのプログラム例は

http://y-okamoto-psy1949.la.coocan.jp/VCpp/PictureLoadCopy/

で説明している。

 

 

Up