如何在.Net中使用32位Alpha混合BMP
时间:2020-03-05 18:46:58 来源:igfitidea点击:
有什么方法可以在.Net(C#)中使用这种格式?
我想使用uTorrent在我的应用程序中使用的相同皮肤格式,但是我无法获得透明背景。
有任何想法吗?
谢谢你的时间。
解决方案
回答
PixelFormat枚举列出了可以在.Net中创建的"位图"的格式,因此我们需要使用PixelFormat.Format32bppArgb:
http://msdn.microsoft.com/zh-CN/library/system.drawing.imaging.pixelformat.aspx
http://msdn.microsoft.com/en-us/library/3z132tat.aspx
但是,我不确定BMP文件格式是否支持透明性,因此我们可能不得不将文件另存为PNG文件。
回答
我们需要做两件事:
- 将位图复制到窗体上作为背景。
- 调用UpdateLayeredWindow(user32.dll)以启用每个像素的alpha透明度。
该代码有点笨拙,但这是一个非常不错的示例应用程序,带有源代码:C#中的Per Pixel Alpha Blend