【问题标题】:How to draw a PNG on a transaprent background?如何在透明背景上绘制 PNG?
【发布时间】:2011-05-16 15:18:15
【问题描述】:

我有一个 WS_EX_LAYERED 样式的窗口,它有一个魔法粉红色 (0xFF,0,0xFF) 的 alpha 颜色键。 我正在尝试使用 GDI+ 在该窗口上绘制一个 PNG 图像,它在图标边缘(应用 alpha 混合的位置)周围显示粉色阴影。
这是一个例子:

http://img834.imageshack.us/img834/8241/stackoverflow.png

如何使用真实背景(我的窗口后面的那个)alpha 混合而不是颜色键绘制图像?

感谢您的帮助, 奥马尔

【问题讨论】:

  • 你现在用什么来画画?
  • @Jon Cage 没什么特别的,只是调用 Gdiplus::DrawImage 并在此之前将窗口颜色键设置为魔法粉红色。因为首先绘制背景,所以 alpha 混合受粉红色影响,而不是真实背景。
  • PNG 是否有实际的 Alpha 通道?或者它只是在背景中有洋红色?
  • @Adrian - 它有 alpha 通道。

标签: c++ windows graphics png gdi+


【解决方案1】:

需要检查的几点:

  1. 你见过the docs on MSDN吗?
  2. 您在BLENDFUNCTION 结构中提供了哪些选项?
  3. 如何加载 .png?
  4. 您的图像有 Alpha 通道吗?

【讨论】:

  • 1,2) 阅读它并尝试使用 UpdateLayeredWindow,希望能做到。 3) 使用 GdiPlus::Image 4) 是
猜你喜欢
  • 1970-01-01
  • 2013-12-10
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
相关资源
最近更新 更多