.Net(C#)でこの種の形式を使用する方法はありますか?uTorrentがアプリで使用しているのと同じスキンフォーマットを使用したいのですが、透明な背景を取得できません。何か案は?御時間ありがとうございます。
3 に答える
次の 2 つのことを行う必要があります。
- 背景としてビットマップをフォームにコピーします。
- UpdateLayeredWindow (user32.dll) を呼び出して、ピクセルごとのアルファ透明度を有効にします。
コードは少しかさばりますが、ソース コード付きの非常に優れたサンプル アプリケーションを次に示します。C# のピクセル アルファ ブレンドごと
PixelFormat 列挙には、.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 ファイルとして保存する必要があります。
BMP 形式はアルファ チャネルをサポートしていますが、Windows はそれを無視します。幸いなことに、フォーマットはかなり単純で、System.IO.BinaryReader を使用して読み取り、LockBits メソッドと UnlockBits メソッドを使用して Drawing.Bitmap を作成し、データを書き込むことができます。