画像部分を真っ白にする方法
画像部分を真っ白にする方法
DXライブラリで、
画像部分を真っ黒にする方法は
SetDrawBright( 0 , 0 , 0 );
//画像を表示
SetDrawBright( 255 , 255 , 255 );
と、輝度を指定してあげれば出来るのですが、
画像部分を真っ白にする方法が分かりません。
そのようなこと可能なのでしょうか?
もし知っている方がいましたら教えてください。
よろしくお願いします。
画像部分を真っ黒にする方法は
SetDrawBright( 0 , 0 , 0 );
//画像を表示
SetDrawBright( 255 , 255 , 255 );
と、輝度を指定してあげれば出来るのですが、
画像部分を真っ白にする方法が分かりません。
そのようなこと可能なのでしょうか?
もし知っている方がいましたら教えてください。
よろしくお願いします。
Re:画像部分を真っ白にする方法
解決になってしまいましたが…
画面を真っ白にするなら
白をαブレンドで描画すればいいんじゃないですか?
DrawBox( 0, 0, 640, 480, GetColor(255,255,255) , TRUE);//画面全体を白で描画
SetDrawBlendMode( 0, DX_BLENDMODE_ALPHA );//αブレンドの値を設定
//画像を表示
SetDrawBlendMode( 255, DX_BLENDMODE_NOBLEND);//元に戻す
多分これでいいと思います。
画面を真っ白にするなら
白をαブレンドで描画すればいいんじゃないですか?
DrawBox( 0, 0, 640, 480, GetColor(255,255,255) , TRUE);//画面全体を白で描画
SetDrawBlendMode( 0, DX_BLENDMODE_ALPHA );//αブレンドの値を設定
//画像を表示
SetDrawBlendMode( 255, DX_BLENDMODE_NOBLEND);//元に戻す
多分これでいいと思います。
Re:画像部分を真っ白にする方法
ああ、すみません。強調すればよかったですね。
画面全体を真っ白にするのではなく、
画像自体をプログラムで真っ白に変えてみたいのです。
添付参照。
白く加工したものを表示する方法もありますが、
メモリが勿体ないので……
画面全体を真っ白にするのではなく、
画像自体をプログラムで真っ白に変えてみたいのです。
添付参照。
白く加工したものを表示する方法もありますが、
メモリが勿体ないので……
Re:画像部分を真っ白にする方法
DXライブラリはさっぱり分かりませんが。
画像のビットブロックを直接いじるとかは出来ないのでしょうか。
もしくは、画像からマスクなりリージョンなりを作って塗りつぶすとか。
>白く加工したものを表示する方法もありますが、
>メモリが勿体ないので……
png画像で640x480のサイズでも300kb程度ですよ。
そんなにケチるほどのメモリ量では無いと思いますが。
画像のビットブロックを直接いじるとかは出来ないのでしょうか。
もしくは、画像からマスクなりリージョンなりを作って塗りつぶすとか。
>白く加工したものを表示する方法もありますが、
>メモリが勿体ないので……
png画像で640x480のサイズでも300kb程度ですよ。
そんなにケチるほどのメモリ量では無いと思いますが。
Re:画像部分を真っ白にする方法
加算ブレンドと反転描画を組み合わせたらできました。
その方法ですが、反転画像を描画し、その後元画像を加算ブレンドで描画します。
そのため、2回描画する必要があります。
元画像+(255-元画像)=255
となることを利用しました。
その方法ですが、反転画像を描画し、その後元画像を加算ブレンドで描画します。
そのため、2回描画する必要があります。
SetDrawBlendMode( DX_BLENDMODE_INVSRC, 255);//画像を反転させて描画する //画像を描画 SetDrawBlendMode( DX_BLENDMODE_ADD, 255);//画像を加算ブレンドで描画する //画像を描画 SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255) ;//元に戻す反転画像の色は(255-元画像)になるので、元画像と加算ブレンドすると、
元画像+(255-元画像)=255
となることを利用しました。
