delphi - 在 Delphi 中淡入 alpha 混合 PNG 表单

标签 delphi png alphablending

几年前,当 Vista 首次发布时,我曾问过这个问题,但从未解决该问题,并把它搁置起来以供以后考虑。

我有一个启动屏幕,我花了很大力气才让它看起来很棒。这是 32bpp alpha 混合的 PNG。我有一些代码(如果需要,我可以挖掘它们!),当桌面组合关闭时,它们在 Windows XP 或 Vista+ 下工作得很好。然而,在Vista+下,所有透明部分都是黑色的,破坏了它看起来很棒的一切!

所以,我的问题是这样的:是否有人能够将 32bpp alpha 混合的 PNG 显示为启动屏幕,无论是否激活桌面合成都可以工作?如果需要,无论免费还是其他方式,我并不反对使用第三方组件。

理想情况下,这可以在 Delphi 7 中运行。

更新:除了下面的答案非常有效之外,我发现 TMS TAdvSmoothSplashScreen 组件也可以很好地处理此任务,尽管稍微复杂一些。

最佳答案

蒂姆,我刚刚在 Vista/D2007 上尝试了此操作,并选择了“Windows 经典”主题:

Delphi 中的 Alpha 混合启动屏幕 - 第 2 部分 http://melander.dk/articles/alphasplash2/2/

我看不到黑色背景......它看起来仍然很棒。

关于delphi - 在 Delphi 中淡入 alpha 混合 PNG 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228820/

相关文章:

ios - 为什么 UIBezierPath strokeWithBlendMode 什么都不做?

xml - IXMLDocument 无法读取数据,因为 IXMLNode.Text 属性始终为空

multithreading - 多色,多线程加速: reading through CSVs using TMemoryStream

c# - 如何设计炫酷的半透明闪屏?

shell - aws cognito 中 set-ui-customization 中的 PNG 格式无效

opengl - 如何让多边形抗锯齿工作?

delphi - 鼠标输入/离开消息不起作用?

xml - 任何人都有使用 OMNIXML 加载 xml 的示例代码

java - javafx中的部分透明图像

c# - Windows 窗体 : Making a cursor bitmap partially transparent