TNP資料室 @ ウィキ

画像を表示する方法

最終更新:

kokeiro

- view
だれでも歓迎! 編集
画像を表示するには「画像をメモリに読み込ませる」「メモリに読み込んだ画像を画面に出力する」という2つを実行する必要があります。

画像をメモリに読み込む

 画像をメモリに読み込むにはLoadGraph関数を呼び出します。

int LoadGraph( char *FileName ) ;

 引数に画像の名前を渡すことで、画像をメモリに読み込み、グラフィックハンドル?を返します。グラフィックハンドルはカラーコードの親戚のようなもので、メモリに読み込んだ画像の識別番号です。どこに保存したかをint型で表現したものと考えて差し支えありません。指定する画像は別の階層のものでも大丈夫です。
 なお、読み込むことの出来る画像形式はBMP,JPEG,PNG,DDS,ARGB,TGAの6種類です。
 また、画像を読み込むのは当然ながらメインループを1週するごとに行う必要はありません。


メモリに読み込んだ画像を出力する

 メモリに読み込んだ画像を出力するには、DrawGraph関数を呼び出します。

int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;

 第1引数、第2引数は描画する画像の左上の座標です。第3引数は先ほど読み込ませたグラフィックハンドルです。第4引数は透過色?を有効にするかどうかのフラグです。TRUEで有効、FALSEで無効です。
 描画の座標指定が左上なので、中心に表示したいとき単純に(320,240)と指定すると、「画像の左上が」中心に表示されてしまいますので、なんらかの方法で位置を修正する必要があります。


メモリに読み込んだ画像データを全て削除する

 メモリに読み込んだ画像データを全て削除するにはInitGraph関数を呼び出します。
int InitGraph( void ) ;
 グラフィックを使用しなくなったときに呼び出し、メモリを解放します。



サンプルソース

画像を読み込み、画面に描画します。サンプル画像をプロジェクトがあるフォルダに保存してください。
sample.bmp

#include"DxLib.h"

void GetKeyInput( int *KeyBuf );

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
	ChangeWindowMode(TRUE);
	if(DxLib_Init()==-1)
		return 1;
	SetDrawScreen(DX_SCREEN_BACK);

	// メインループが始まる前に画像を読み込む。
	int SampleGraphicHandle = LoadGraph("sample.bmp");

	while(1){
		if( ProcessMessage() != 0 || CheckHitKey( KEY_INPUT_ESCAPE ) != 0 )
			break;
		int Key[256];
		GetKeyInput( Key );
		ClearDrawScreen();

		// 画像を描画する。マウス手書き。
		DrawGraph(50,50,SampleGraphicHandle,FALSE);

		ScreenFlip();
	}
	InitGraph();		// 読み込んだ画像を削除、メモリを解放する。
	DxLib_End();
	return 0;
}

void GetKeyInput( int *KeyBuf ){
	char damy[256];
	GetHitKeyStateAll( damy ) ;
	for( int i=0 ; i<256 ; i++ ){
		if( damy[i] == 1 )
			KeyBuf[i]++;
		else
			KeyBuf[i] = 0;
	}
}

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

添付ファイル
目安箱バナー