4

有没有办法在.Net(C#)中使用这种格式?我想使用 uTorrent 在我的应用程序中使用的相同皮肤格式,但我无法获得透明背景。有任何想法吗?谢谢你的时间。

4

3 回答 3

3

你需要做两件事:

  • 将您的位图复制到表单上作为背景。
  • 调用UpdateLayeredWindow (user32.dll) 以启用每像素 Alpha 透明度。

代码有点庞大,但这里有一个非常不错的示例应用程序和源代码:Per Pixel Alpha Blend in C#

于 2008-10-09T08:32:36.167 回答
2

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 文件。

于 2008-09-03T12:18:52.697 回答
2

虽然 BMP 格式确实支持 Alpha 通道,但 Windows 会忽略它。幸运的是,格式相当简单,您可以使用 System.IO.BinaryReader 读取它,然后使用 LockBits 和 UnlockBits 方法创建一个 Drawing.Bitmap 将数据写入其中。

于 2011-05-19T08:05:07.077 回答