トップページ > 過去ログ > 記事閲覧
SetDrawScreenでのグラフィックハンドル指定
名前:らり 日時: 2009/12/21 14:49

読み込んだ画像に、任意の書き込み後、保存したいのですが、 下記のソースでは、 読み込んだ画像がない、文字だけの画像が保存 & 画像に書き込んだはずの文字が、画面にも表示される という結果になります。 どうやら、最初のSetDrawScreenで失敗しているようです。 確かグラフィックハンドルも描画スクリーンに設定できたと思っていたのですが、 根本的に考え違いをしているのでしょうか? 任意のグラフィックハンドルをファイル形式で保存するすべはないのでしょうか? ご教授、お願いします。 #include "DxLib.h" // WinMain関数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ int x,y; int Handle; //ウィンドウモードで起動する ChangeWindowMode( TRUE ) ; // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; //グラフィックハンドルを作成し、描画先に設定 Handle=LoadGraph("test.bmp"); SetDrawScreen(Handle); //サイズを取得した上で、書き込み後別名で保存 GetGraphSize(Handle,&x,&y); DrawString(0,0,"for test",GetColor(255,255,255)); SaveDrawScreen(0,0,x,y,"test2.bmp"); //描画先を正常に戻し、書き込みが終了したことを表示 SetDrawScreen(DX_SCREEN_BACK); DrawString(0,20,"end writting",GetColor(255,255,255)); ScreenFlip(); WaitKey(); // DXライブラリ使用の終了処理 DxLib_End() ; // ソフトの終了 return 0 ; }

Page: 1 |

Re: SetDrawScreenでのグラフィックハンドル指定 ( No.1 )
名前:バトーキン 日時:2009/12/21 18:10

グラフィックハンドルを作る前に、  SetDrawValidGraphCreateFlag( TRUE ); をしておくといいのかな、と思います。
Re: SetDrawScreenでのグラフィックハンドル指定 ( No.2 )
名前:らり(解決) 日時:2009/12/21 22:47

なるほど 普通に作成したグラフィックハンドルでは、不可能なのですね LoadGraph部分を SetDrawValidGraphCreateFlag( TRUE ); //グラフィックハンドルを作成し、描画先に設定 Handle=LoadGraph("test.bmp"); SetDrawValidGraphCreateFlag( FALSE ); と変更することで、可能となりました。 バトーキンさん、ありがとうございました。 ※関数作成時の経緯は、こちらが参考になるようです。 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=399 DirectX9に移行した現在は、αチャンネルの非直感的動作も改善されてるのかな?

Page: 1 |