linux - 在 Ubuntu 上使用 X11 覆盖窗口和根窗口

标签 linux overlay x11 opencv3.0

我想知道覆盖窗口是否是根窗口的子窗口。那是因为当我对根窗口使用 XGetImage() 时,我看到 Overlay 窗口也出现在保存的图像中(我通过 OpenCV 3.4.1 保存它)。那么,有没有办法只获取根窗口的图像(不包括覆盖窗口。)

我从这里采用了覆盖窗口的代码:X11 - Draw on Overlay Window

我从这里读到关于覆盖的信息:https://www.x.org/releases/X11R7.5/doc/compositeproto/compositeproto.txt

并从这里阅读有关 XGetImage() 的信息: https://tronche.com/gui/x/xlib/graphics/XGetImage.html

我尝试了很多方法,比如改变输入焦点,只使用XCompositeRedirectWindow(导致BadMatch错误)等,但无法只获取根窗口图像。

最佳答案

叠加层可能很棘手。您可以使用 XQueryTree() 从给定窗口中查找父窗口和子窗口。

关于linux - 在 Ubuntu 上使用 X11 覆盖窗口和根窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53821431/

相关文章:

CSS - 弹出层(带有覆盖和关闭按钮)

r - 情节顶部的主标题被切断

x11 - C、Xlib 中的 freedesktop XEmbed 系统托盘客户端代码

linux - 为什么在 Bash 中应该避免使用 eval,我应该使用什么来代替?

c++ - C/C++ 进程如何知道它是否在后台运行?

php - 使用 php 填充 javascript 数组

haskell - 使用 xmonad 使每个窗口透明

python - pip3requirements.txt 充满垃圾

c++ - 如何通过netlink获取网络链接L2地址?

java - 解锁手机后重新启动应用程序覆盖