C#アプリケーションでアルファチャネル(PNGとしましょう)で画像を正しく表示する方法はありますか? ご提案ありがとうございます。
アップデート:
OK、私の質問は少し不正確でした。親の背景色で塗りつぶすのではなく、アルファチャンネルの実際の透明度を取得したいと思います。下の画像では、透明度がサポートされていることがわかりますが、画像の下にあるボタンの部分は表示されていません。画像のアルファ チャネルを実際に透明にすることは可能ですか?
C#アプリケーションでアルファチャネル(PNGとしましょう)で画像を正しく表示する方法はありますか? ご提案ありがとうございます。
アップデート:
OK、私の質問は少し不正確でした。親の背景色で塗りつぶすのではなく、アルファチャンネルの実際の透明度を取得したいと思います。下の画像では、透明度がサポートされていることがわかりますが、画像の下にあるボタンの部分は表示されていません。画像のアルファ チャネルを実際に透明にすることは可能ですか?
それがwinformsならいいえ。winforms の「透明性」は、実際の透明性ではありません。
あなたができることは、PNGを描画し、それを正しい場所に配置し、移動などをバインドするalphatransparentフォームを作成することです.
http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx
PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm();
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>);
// opacity は、画像が描画される不透明度です。値 255 = すべての透明部分は、元の PNG と同じようにアルファ/透明になります。
編集: または WPF に移動します。
はい、System.Drawing.Image.FromFile( "filename.png"); .NET Frameworkは、複数のファイルタイプの透過性をサポートしています。JPEGでは機能しないと思いますが、PNGで問題ありません。
次の MSDN リンクが役立ちます。
WPF: http://msdn.microsoft.com/en-us/library/aa970062.aspx
Windows: http://msdn.microsoft.com/en-us/library/stf701f5.aspx
System.Drawing.Image.FromFile メソッドについて:
マネージド GDI+ には、次のファイルの種類をサポートする組み込みのエンコーダーとデコーダーがあります。
- BMP
- GIF
- JPEG
- PNG
- TIFF