トップページ > 記事閲覧
DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXについて
名前:たろう 日時: 2020/05/24 13:30

いつもすみません、たろうです また質問させてください GraphBlend の DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXをよく使うのですが 例えばSelectAの部分を DX_RGBA_SELECT_BLEND_Bにすると BlendGrHandle画像の青部分が0の箇所が、完成する画像では透明になるのですが これを逆にしたい場面があります。 つまり青が255に近づくほど透明になるといった感じです。 何か方法はございますでしょうか? お忙しい所すみません、 宜しくお願いいたします。
メンテ

Page: 1 |

Re: DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXについて ( No.1 )
名前:管理人 日時:2020/05/26 01:00

> 何か方法はございますでしょうか? 今のところ特に方法が無かったので、DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIX で指定できる引数に 以下の要素の値を反転するタイプを追加しました DX_RGBA_SELECT_SRC_INV_R // 元画像の赤成分を反転したもの DX_RGBA_SELECT_SRC_INV_G // 元画像の緑成分を反転したもの DX_RGBA_SELECT_SRC_INV_B // 元画像の青成分を反転したもの DX_RGBA_SELECT_SRC_INV_A // 元画像のα成分を反転したもの DX_RGBA_SELECT_BLEND_INV_R // ブレンド画像の赤成分を反転したもの DX_RGBA_SELECT_BLEND_INV_G // ブレンド画像の緑成分を反転したもの DX_RGBA_SELECT_BLEND_INV_B // ブレンド画像の青成分を反転したもの DX_RGBA_SELECT_BLEND_INV_A // ブレンド画像のα成分を反転したもの DX_RGBA_SELECT_BLEND_B の代わりに DX_RGBA_SELECT_BLEND_INV_B を指定することで 『青が255に近づくほど透明になる』が実現できます この変更を加えたバージョンをこちらにアップしましたので、よろしければお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXについて ( No.2 )
名前:たろう 日時:2020/05/26 02:14

いつもすみません、ご対応いただきありがとうございます。 さっそく試してみましたが、アクセス違反ということで、エラーが出てしまいます 下のプログラムですが、試しただけでも DX_RGBA_SELECT_BLEND_INV_A DX_RGBA_SELECT_BLEND_INV_B DX_RGBA_SELECT_SRC_INV_A で全て同様のエラーです。 たびたびすみませんが、ご確認いただけますでしょうか? 宜しくお願いいたします<(_ _)> (※tes.pngは410x410のPNG画像ですが画像に係わらずエラーが出るようです) #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( TRUE ); SetGraphMode(600,600,16); if( DxLib_Init() < 0 ) return -1; SetUsePremulAlphaConvertLoad( TRUE ) ; int 幕 = MakeScreen( 500 , 500 , FALSE ); int 幕2= MakeScreen( 500 , 500 , TRUE ); SetDrawScreen(幕); int 画 = LoadGraph(_T("tes.png")) ; DrawGraph( 0, 0 , 画 , TRUE ); SetDrawScreen( DX_SCREEN_BACK ); GraphBlend(幕2,幕, 255, DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIX, DX_RGBA_SELECT_BLEND_R, DX_RGBA_SELECT_BLEND_G, DX_RGBA_SELECT_BLEND_B, DX_RGBA_SELECT_BLEND_INV_A ) ; while( ProcessMessage() == 0 ) { ClearDrawScreen() ; DrawGraph( 0, 0 , 幕 , TRUE ); DrawGraph( 100, 100 , 幕2 , TRUE ); ScreenFlip(); } DxLib_End(); return 0; }
メンテ
Re: DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXについて ( No.3 )
名前:管理人 日時:2020/05/27 02:01

すみません、載せていただいたプログラムで手元の環境でもアクセス違反のエラーが発生してしまうことを確認しました エラーが発生する原因を修正したバージョンをアップしましたので お手数で申し訳ありませんが、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: DX_GRAPH_BLEND_PMA_RGBA_SELECT_MIXについて ( No.4 )
名前:たろう(解決) 日時:2020/05/27 08:54

ご対応いただきありがとうございます 先ほど問題なく使用できることを確認しました。 お忙しい所お手数をおかけいたしました ありがとうございましたm(__)m
メンテ

Page: 1 |

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

   クッキー保存