日替わり NAT’s Champloo

音楽やライブ(HM/HRやボカロなど)、旅行など、ごちゃっとした日記

AlphaBlend()を試してみる

自作のスクリーンセーバーで透過色を使おうと、Windows APIのAlphaBlend()を使って色々試してみた。四角い画像なら、簡単に透過度(アルファ値)をつけて画像を重ねられるんだけど、丸い画像だと簡単にいかない。透過色使わない場合はMaskBlt()で描画しない部分をマスクすれば良いのだけど、AlphaBlend()ではそれができない。アルファ値を持ったビットマップをメモリ上で作って、マスク代わりにアルファ値が0の部分を作ればうまくいきそうだけど、アルファ値を持ったビットマップを作るのが色々と面倒そう。簡単にできる方法はないかなぁ。
そもそもGDI使って凝ったグラフィック処理をしようとしてるのが間違い?。DirectX使えば簡単なのかな?