C# 中的逐像素 Alpha 混合






4.72/5 (70投票s)
2002年2月12日
1分钟阅读

630000

19583
演示如何在 C# 中创建逐像素 Alpha 混合窗口
引言
这是我对 另一篇文章 从 C++/MFC 移植到 C#/Windows Forms 的版本。创建逐像素 Alpha 混合窗口的概念仍然相同,即 GDI 函数 UpdateLayeredWindow
。
变更内容
- 图像加载由 GDI+ 类处理(
System.Drawing
命名空间) - 无需将 rgb 通道与 alpha 通道预先相乘
- 不再支持 PSP 文件。PNG 文件是最佳选择
用法
要使用此代码,您需要在项目中包含 PerPixelAlphaForm.cs 文件,创建一个继承自 PerPixelAlphaForm
的类,使用 System.DrawingImage.FromFile
静态方法加载位图,然后调用 PerPixelAlphaForm.SetBitmap
方法。
示例源代码位于 main.cs 文件中。在源代码中,您还会发现处理 旧 事物的新方法,例如处理从 Windows 资源管理器拖放的文件。
安装与构建
- 下载并解压缩此文章的 源代码。
- 要构建,请从命令提示符运行 build.bat 文件。
- 现在,运行 bin\main.exe 并享受吧!
更新日志
2004 年 5 月 31 日
- 通过创建无边框的窗体来修复剪切问题。
- 将
PerPixelAlphaForm
类移动到 PerPixelAlphaForm.cs 文件。
2002 年 2 月 12 日
- 初始版本
您有什么问题或评论吗?请在下方留言。
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。