【发布时间】:2010-09-07 16:15:14
【问题描述】:
有没有办法在 .Net (C#) 中使用这种格式? 我想使用 uTorrent 在我的应用程序中使用的相同皮肤格式,但我无法获得透明背景。 有任何想法吗? 感谢您的宝贵时间。
【问题讨论】:
有没有办法在 .Net (C#) 中使用这种格式? 我想使用 uTorrent 在我的应用程序中使用的相同皮肤格式,但我无法获得透明背景。 有任何想法吗? 感谢您的宝贵时间。
【问题讨论】:
你需要做两件事:
代码有点庞大,但这里有一个非常不错的示例应用程序的源代码:Per Pixel Alpha Blend in 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 格式确实支持 Alpha 通道,但 Windows 会忽略它。幸运的是,格式相当简单,您可以使用 System.IO.BinaryReader 读取它,然后使用 LockBits 和 UnlockBits 方法创建一个 Drawing.Bitmap 将数据写入其中。
【讨论】: