65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的逐像素 Alpha 混合

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.72/5 (70投票s)

2002年2月12日

1分钟阅读

viewsIcon

630000

downloadIcon

19583

演示如何在 C# 中创建逐像素 Alpha 混合窗口

Preview of the per pixel alpha blend effect

Preview of the per pixel alpha blend effect

引言

这是我对 另一篇文章 从 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 资源管理器拖放的文件。

 

安装与构建

  1. 下载并解压缩此文章的 源代码
  2. 要构建,请从命令提示符运行 build.bat 文件。
  3. 现在,运行 bin\main.exe 并享受吧!

更新日志

2004 年 5 月 31 日

  • 通过创建无边框的窗体来修复剪切问题。
  • PerPixelAlphaForm 类移动到 PerPixelAlphaForm.cs 文件。

2002 年 2 月 12 日

  • 初始版本

您有什么问题或评论吗?请在下方留言。

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.