皆さん こんばんは
最近PNGの透過処理で悩んでいます・・・(笑)
で、何を悩んでいるのか・・・
GDI+でPNGを表示した場合とGraphicEx等で読込んでから
Windows.AlphaBlend()して表示した場合とで、画像の輪郭の感じが
随分違うというか・・・GDI+で描画した方は綺麗で
AlphaBlendが汚いといいうか・・・(^^;
そもそも、GDI+の場合はAlphaBlendするまでもなく
背景色を塗ったCanvas上に直接DrawImageするだけで
透過処理がされてしまうので、AlphaBlend側の
Alphaチャンネルの解釈の仕方の問題なのですが・・・
しかたがなく、Scanlineを使って、R,G,Bの各値にAをAndして描画し
なおかつ、Aの値が100以下であれば描画しないとかすれば、
かなり近い画像になるのですが、細い線が黒くなる・・・
Aの値を128程度まで上げると、細い線の情報が欠落する・・・
50程度まで下げると、輪郭が太くなる・・・
何か良い方法はないものでしょうか・・・
どなたかご教示願えれば幸いです。
|