【问题标题】:Taking a PNG screenshot of a window, but keeping the aero transparency截取一个窗口的 PNG 屏幕截图,但保持航空透明度
【发布时间】:2012-01-21 21:33:42
【问题描述】:

前段时间,我偶然发现了一篇很棒的文章,内容是在 .NET 中截取特定窗口的屏幕截图,并在这些窗口后面使用黑白矩形进行处理,以便在将屏幕截图保存为 PNG 时保留航空效果。 好吧,我再也找不到那篇文章了,主要是因为垃圾网站和其他与截屏无关的东西 SEO 进入了谷歌的搜索结果。 有谁知道如何在保留航空效果的同时截取特定窗口的屏幕截图?

【问题讨论】:

  • 你在说什么 Aero 效果?玻璃?流血的红色关闭按钮效果?为什么它们对单个窗口的屏幕截图很重要?
  • 我的意思是:i53.tinypic.com/2qlh5av.jpg(添加了棋盘格的东西以突出显示半透明区域)
  • 那是玻璃。除了令人惊叹的效果外,它还旨在向用户提示窗口的 Z 顺序。当您制作窗口的屏幕截图时,这并不是一个问题,只有一个窗口可供查看。无论它背后可能是什么,都只会弄乱屏幕截图。这就是你要解决的问题吗?使背景看起来一致且不受背景窗口中模糊像素的污染?
  • 我认为他想要保存的 PNG 镜头的透明度。因此,他保存的 PNG 具有保存透明度作为他拍摄的窗口。我说的对吗?
  • @HansPassant 是的,这基本上是我的问题。另一部分是我不喜欢“正常”的屏幕截图,我认为背景中的所有其他东西都很难看。

标签: c# vb.net transparency screenshot aero


【解决方案1】:

我认为您的意思是 this 链接。它描述了如何恢复 alpha 混合以获取“真实”的 alpha 值。 基本上,您必须在窗口下方放置一个白色矩形,截取屏幕截图并对黑色矩形执行相同操作。然后您可以重新获得窗口的 Alpha 通道,如上面链接的博客文章中所述。

编辑:对不起,现在我发布了更正的链接。

【讨论】:

  • 是的,就是那篇文章。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2011-06-12
  • 2018-11-13
  • 1970-01-01
相关资源
最近更新 更多