トップページ > 記事閲覧
LoadDivGraphの読み込みに関して
名前:名無三 日時: 2020/04/06 18:33

現在LoadDivGraphで読み込んだ画像とDerivationGraphで切り出した画像をGraphBlendBltでブレンドして使用しているのですが、 画像サイズによる変化やウィンドウサイズ変更に対応するのが難しく感じています。 LoadDivGraphで読み込む際に一つ一つの画像サイズを変更できるようにしていただけるか、 画像を描画時以外でも拡大縮小できるような関数を追加していていただける と幸いです。
メンテ

Page: 1 |

Re: LoadDivGraphの読み込みに関して ( No.1 )
名前:管理人 日時:2020/04/08 06:49

> LoadDivGraphで読み込む際に一つ一つの画像サイズを変更できるようにしていただけるか、 画像一つ一つのサイズが異なる場合は LoadDivGraph を使用する代わりに、 LoadGraph で読み込んだ画像を個別に DerivationGraph で切り出してください > 画像を描画時以外でも拡大縮小できるような関数を追加していていただけると幸いです。 描画時以外でも拡大縮小というのは具体的にはどういうことでしょうか? ( 画像サイズを変更したいということでしょうか?( 例えば 32x32サイズの画像を  48x48サイズの画像に変更する等 ) )
メンテ
Re: LoadDivGraphの読み込みに関して ( No.2 )
名前:名無三 日時:2020/04/08 13:44

> LoadGraph で読み込んだ画像を個別に DerivationGraph で切り出してください 承知しました > 描画時以外でも拡大縮小というのは具体的にはどういうことでしょうか? ( 画像サイズを変更したいということでしょうか?( 例えば 32x32サイズの画像を  48x48サイズの画像に変更する等 ) ) その認識です、倍率もしくはサイズを指定することができればと思います。
メンテ
Re: LoadDivGraphの読み込みに関して ( No.3 )
名前:管理人 日時:2020/04/09 07:43

> その認識です、倍率もしくはサイズを指定することができればと思います。 なるほど… ちょっと仕組み上そのような機能をすぐに作成するのは難しいので、以下のような 『指定の画像を指定のサイズに拡大したグラフィックハンドルを作成する関数』で 代用してみてください m(_ _;m #include "DxLib.h" // 指定の画像を指定のサイズに拡大したグラフィックハンドルを作成する int CreateScalingGraphHandle( int BaseHandle, int CreateSizeX, int CreateSizeY ) { int NewHandle ; int DrawScreen ; int BlendMode ; int BlendParam ; // 描画先を記憶しておく DrawScreen = GetDrawScreen() ; // ブレンドモードを記憶しておく GetDrawBlendMode( &BlendMode, &BlendParam ) ; // 新しい画像を作成する NewHandle = MakeScreen( CreateSizeX, CreateSizeY, TRUE ) ; // 描画先を作成した画像にする SetDrawScreen( NewHandle ) ; // ブレンドモードを『描画する画像の色をそのまま転送する』設定にする SetDrawBlendMode( DX_BLENDMODE_SRCCOLOR, 255 ) ; // 作成した画像に拡大描画 DrawExtendGraph( 0, 0, CreateSizeX, CreateSizeY, BaseHandle, TRUE ) ; // 描画先を元に戻す SetDrawScreen( DrawScreen ) ; // ブレンドモードを元に戻す SetDrawBlendMode( BlendMode, BlendParam ) ; // 作成したハンドルを返す return NewHandle ; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int GrHandle ; int GrWidth, GrHeight ; int Size2GrHandle ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 画像を読み込み GrHandle = LoadGraph( "Test1.bmp" ) ; // 画像のサイズを取得する GetGraphSize( GrHandle, &GrWidth, &GrHeight ) ; // 2倍に拡大したグラフィックハンドルを作成する Size2GrHandle = CreateScalingGraphHandle( GrHandle, GrWidth * 2, GrHeight * 2 ) ; // 元のグラフィックハンドルを削除する DeleteGraph( GrHandle ) ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // 2倍に拡大した画像を描画する DrawGraph( 0, 0, Size2GrHandle, TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; // キー入力待ち WaitKey() ; // 2倍に拡大したグラフィックハンドルを削除する DeleteGraph( Size2GrHandle ) ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ
Re: LoadDivGraphの読み込みに関して ( No.4 )
名前:名無三(解決) 日時:2020/04/11 14:29

承知しました、工夫するようにします。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存