トップページ > 過去ログ > 記事閲覧
MakeGraph した画像に透過色を設定する
名前:ikuo 日時: 2010/12/16 19:43

初めましてikuoと申します。 MakeGraph で作成した画像に透過色の設定ができません、MakeGraphに透過色を設定する方法を教えてください。 現在は以下のような実装で行おうとして失敗しています。 −−−−−   ChangeWindowMode(TRUE);   if(SetGraphMode(DefScreenWidth(), DefScreenHeight(), 16) != DX_CHANGESCREEN_OK) {     throw("SetGraphMode");   }   if(DxLib_Init() == -1) {     throw("DxLib_Init");   }   //SetTransColor(0x00, 0x00, 0xff);   int bmp = LoadGraph(".\\image\\teki1.bmp");   SetDrawValidGraphCreateFlag(TRUE);   SetTransColor(0x00, 0x00, 0xff);   int tmp = MakeGraph(32, 32);   SetDrawValidGraphCreateFlag(FALSE);   SetDrawScreen(tmp);   DrawRectGraph(0, 0, 0, 0, 32, 32, bmp, FALSE, FALSE);   SetDrawScreen(DX_SCREEN_BACK);   DrawGraph(0, 0, tmp, TRUE);   ScreenFlip();   WaitKey();   DeleteGraph(bmp);   DeleteGraph(tmp);   // quit   DxLib_End(); −−−−− よろしくお願いします。

Page: 1 |

Re: MakeGraph した画像に透過色を設定する ( No.1 )
名前:ikuo 日時:2010/12/16 21:17

自己解決? ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2015 >・MakeGraph や MakeScreen で動的に作成したグラフィックハンドル > (CreateGraphFromMem や CreateGraphFromSoftImage で作成した場合は機能する模様 > 逆に LoadSoftImage では『_a』が付く画像が読み込まれない) PNGで読み込んだ時は MakeGraph したものでも透過してくれたと思うのですが、 リソースをBMPじゃなくてPNGにするか CreateGraphFromMem を使えばいいんでしょうかね…
Re: MakeGraph した画像に透過色を設定する ( No.2 )
名前:いっち 日時:2010/12/16 21:28

もしかして、透過情報付の書き込み可能画像を作成したいと言うことでしょうか? それでしたら SetDrawValidAlphaChannelGraphCreateFlag を MakeGraph の前で設定する必要があります。 > ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2005
Re: MakeGraph した画像に透過色を設定する ( No.3 )
名前:ikuo 日時:2010/12/16 21:50

>SetDrawValidAlphaChannelGraphCreateFlag 希望通りの動作ができました、ありがとうございます。 アニメーションパターンの連続を1枚に収めた画像を1パターンごとに切り出して、一つずつ別のグラフィックハンドルとして扱いたかったのですが(回転描画の都合があるため)、メモリ内でグラフィック操作する手順がよく分かっていませんでした。
Re: MakeGraph した画像に透過色を設定する ( No.4 )
名前:いっち 日時:2010/12/17 01:11

> アニメーションパターンの連続を1枚に収めた画像を1パターンごとに切り出して、一つずつ別のグラフィックハンドルとして扱いたかったのですが(回転描画の都合があるため)、メモリ内でグラフィック操作する手順がよく分かっていませんでした。 私が勘違いしているかもしれませんが、そういった場合、LoadDivGraph と DrawRota〜 や DrawModi〜 や DrawPolygon なんかを組み合わせることでも実現できるかも知れません。 //- 以下、テストコード("test2.bmp")を使用 -// #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( TRUE ); if ( DxLib_Init( ) == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); int ghz[10]; LoadDivGraph( "test2.bmp", 10, 4, 3, 48, 56, ghz ); while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { ClearDrawScreen( ); DrawGraph( 0, 0, ghz[1], TRUE ); DrawRotaGraph( 56+56/2, 56/2, 1.0, PHI_F/2, ghz[1], TRUE ); ScreenFlip( ); } DxLib_End( ); return 0; }
Re: MakeGraph した画像に透過色を設定する ( No.5 )
名前:ikuo 日時:2010/12/23 20:03

>いっちさん >LoadDivGraph まさにそれです。 ありがとうございます。

Page: 1 |