繁体   English   中英

如何操作屏幕输出?

[英]How can I manipulate screen output?

我正在计划一个新项目,可能会涉及在Linux系统上操纵屏幕输出。 这个想法是使用相机检测站在投影仪前面的人,并去除将被投影到该人的那部分图像。 (这样至少该人不会失明)。

因此,基本上,我需要对辅助监视器进行中间人攻击。 我发现XvfB(据我了解)可以模拟屏幕。 我的想法是现在建立一个模拟屏幕,修改图像内容,然后将新图像发送到真实的投影仪。

有人做了这样的事情还是采用了完全不同的方法?

我将使用Composite扩展来做到这一点。 您可以使用简单的复合管理器(例如compton)作为基础。

复合管理器将所有其他X11客户端窗口接收为帧缓冲区。 然后,它可以在自己的全屏窗口上以任意方式渲染它们。

在您的情况下,复合管理器会屏蔽特定区域,从而偏离其通常的行为。 在现有代码库上进行的更改似乎很小。

请注意,大型桌面(KDE,Gnome,Unity…)的窗口管理器都包含一个复合管理器。 在这种情况下,您将无法运行自己的程序,而需要修补相应窗口管理器的复合模块。

但是,出于您的目的,我认为更改为更简单的窗口管理器+您的自定义复合管理器解决方案不会有多大伤害。

您可以使用X SHAPE扩展名: http : //www.x.org/releases/X11R7.7/doc/xextproto/shape.html

使用它,您可以创建具有不规则形状的窗口。 (就像xeyes程序一样。)您可以创建一个黑色的全屏无色“总是在顶部”窗口,该窗口将根据您提供的蒙版不断更改形状。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM