2008-09-03 10 views
4

.Net(C#)でこの種の形式を使用する方法はありますか? uTorrentが私のアプリケーションで使用するのと同じスキンフォーマットを使用したいと思いますが、透明な背景を得ることはできません。 アイデア お時間をいただきありがとうございます。.NETで32bitアルファブレンドBMPを使用する方法

答えて

2

ピクセルフォーマットの列挙は、あなたが、.NETで作成することができます 'ビットマップ' の形式を示していますので、あなたがしたいと思いますPixelFormat.Format32bppArgb:

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat.aspx

http://msdn.microsoft.com/en-us/library/3z132tat.aspx

は、しかし、私は完全ではありませんよBMPファイル形式が透過性をサポートしていることを確認してください。そのため、代わりにPNGファイルとして保存する必要があります。

+0

サムが正しいです。 BMPはアルファチャンネルをサポートしていません。ビットマップの透明度は通常、クロマキーの方法で行われます(1つの色を選択して100%透明にします)。 ここではPNGが最適な選択です。 –

3

は、次の2つのことを行う必要があります

  • は背景としてフォームにあなたのビットマップをコピーします。
  • ピクセル単位のアルファ透明度を有効にするには、UpdateLayeredWindow(user32.dll)を呼び出します。

コードがliitle少しかさばるですが、ここでは、ソースコードと非常に素敵なサンプルアプリケーションです:Per Pixel Alpha Blend in C#

+0

ありがとう、私はそれを試みる –

2

BMP形式はアルファチャンネルをサポートしていますが、Windowsはそれを無視します。幸いなことに、このフォーマットはかなりシンプルで、System.IO.BinaryReaderを使用して読み取ることができます。次に、LockBitsおよびUnlockBitsメソッドを使用してDrawing.Bitmapを作成し、データを書き込みます。

関連する問題