Re: 画像の合成について ( No.1 ) |
- 名前:管理人 日時:2012/10/28 02:50
GraphBlend 関数の引数 BlendGrHandle に渡す画像のサイズが引数 GrHandle に渡す画像のサイズより
小さいとエラーを返すようになってしまっていました
修正版をアップしましたので、よろしければお試しください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
あと代替案としてされた方法についてですが、αブレンドは書き込むα値についても
乗算処理をしてしまうので、DX_BLENDMODE_ALPHA で描画先に描画した結果は
描画元の画像とは異なるものになってしまいます
DX_BLENDMODE_ALPHA の代わりに DX_BLENDMODE_SRCCOLOR を使用して描画先に描画すると意図した
結果が得られると思いますので、よろしければお試しになってみてください
DX_BLENDMODE_ALPHA では上手くいかない理由についてはこちらのスレッドの No.1 に書いてありますので
ご興味がありましたらご覧ください
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2737
|
Re: 画像の合成について ( No.2 ) |
- 名前:takatwu 日時:2012/10/28 12:10
ありがとうございます。
無事、GraphBlend 関数でエラーが出なくなりました。
しかし、2つの画像サイズが違う時の結果が予想と違っていました。
GrHandleのサイズ丁度にBlendGrHandleを拡大縮小を行なって合成することは出来ないでしょうか?
MakeScreenで作成した画像を仲介させてもいいと思ったのですが、可能であれば実装していただきたいです。
|
Re: 画像の合成について ( No.3 ) |
- 名前:管理人 日時:2012/10/28 15:16
少し考えてみたところ、現状の仕様でサイズの違う画像同士をブレンドさせるということは普通しないだろうなと思ったので
( 片方がはみ出ても良いブレンドって、普通しないよな・・・という・・・ )
GraphBlend と GraphBlendBlt の挙動を takatwuさんのご要望に沿うように BlendGrHandle 側が GrHandle 側のサイズに
スケーリングされるように仕様を変更しました
よろしければお試しになってみてください
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
|
Re: 画像の合成について ( No.4 ) |
- 名前:takatwu(解決) 日時:2012/10/28 16:01
ありがとうございます。
期待通りの結果が得られました。
|