トップページ > 過去ログ > 記事閲覧
透過色を用いた保存
名前:おき 日時: 2012/02/15 22:34

タイトル通り、画面を保存する際に透過色を用いた保存をしたいと思っています 呼び出した画像の指定した色(ここでは(200,0,200))を透過させることはできたのですが、 それを保存すると透過にはなりません。 背景が透過では無いからかと思い、 SetBackgroundColor(200,0,200); として背景を透過に指定しようと思ったのですがそれもできないようです。 何か解決策はありますか? 具体的な用途は、別ソフトでキャラと背景を組み合わせて 画面構成を吟味しようと思っています。 最初から背景を透過できればものすごく楽になりますので・・・ よろしくおねがいします。 SetTransColor( 200,0,200 ) ; LoadGraphScreen( 1 , 1 , "1.bmp" ,1);//( 200,0,200 )の色が使われています SaveDrawScreenToPNG( 0,0,640,480,"xxx.png" );

Page: 1 |

Re: 透過色を用いた保存 ( No.1 )
名前:いっち 日時:2012/02/15 22:55

原因はデフォルトの描画対象となっているバッファにアルファチャンネルが存在しないためだと思います。 以下のようにすることで、ご希望の結果が得られるのではないでしょうか? //- 以下、テストコード ("test1.bmp"を使用) -// #include "DxLib.h" int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { ChangeWindowMode( TRUE ); SetWindowText( "DxLib:" DXLIB_VERSION_STR ); if ( DxLib_Init( ) == -1 ) return -1; int gh = LoadGraph( "test1.bmp" ); int mgh = MakeScreen( 640, 480, TRUE ); SetDrawScreen( mgh ); DrawBox( 0, 200, 200, 400, GetColor( 255, 0, 0 ), TRUE ); DrawGraph( 0, 0, gh, TRUE ); SaveDrawScreenToPNG( 0, 0, 640, 480, "test.png" ); DxLib_End( ); return 0; }
Re: 透過色を用いた保存 ( No.2 )
名前:おき 日時:2012/02/15 23:25

すごい!できました! ありがとうございました!!

Page: 1 |