Linux 如何操作屏幕输出?

Linux 如何操作屏幕输出?,linux,ubuntu-14.04,x11,xvfb,Linux,Ubuntu 14.04,X11,Xvfb,我正在计划一个新的项目,它可能涉及在Linux系统上操作屏幕输出。这个想法是使用一个摄像头来检测站在投影仪前的人,并移除投影到该人身上的图像部分。(这样至少这个人不会失明) 所以基本上,我需要一个中间人攻击作为辅助监视器。 我发现XvfB(据我所知)可以模拟屏幕。我现在的想法是设置这样一个模拟屏幕,修改图像的内容,然后将新图像发送到真正的投影仪 是否有人做过类似的事情,或者有完全不同的方法 我将使用复合扩展来实现这一点。 您可以使用一个简单的复合管理器,例如作为基础 复合管理器将所有其他X11客

我正在计划一个新的项目,它可能涉及在Linux系统上操作屏幕输出。这个想法是使用一个摄像头来检测站在投影仪前的人,并移除投影到该人身上的图像部分。(这样至少这个人不会失明)

所以基本上,我需要一个中间人攻击作为辅助监视器。 我发现XvfB(据我所知)可以模拟屏幕。我现在的想法是设置这样一个模拟屏幕,修改图像的内容,然后将新图像发送到真正的投影仪


是否有人做过类似的事情,或者有完全不同的方法

我将使用复合扩展来实现这一点。 您可以使用一个简单的复合管理器,例如作为基础

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

在您的情况下,复合管理器会通过屏蔽特定区域而偏离其常规行为。对现有的代码库来说,这似乎是一个相当小的改变

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


不过,出于您的目的,我想更改为更简单的窗口管理器+自定义复合管理器解决方案不会有太大影响。

我会使用复合扩展来实现这一点。 您可以使用一个简单的复合管理器,例如作为基础

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

在您的情况下,复合管理器会通过屏蔽特定区域而偏离其常规行为。对现有的代码库来说,这似乎是一个相当小的改变

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


不过,出于您的目的,我想更改为更简单的窗口管理器+自定义复合管理器解决方案不会有太大影响。

您可以使用X形扩展:


使用它,您可以创建具有不规则形状的窗口。(就像程序
xeyes
所做的那样。)您可以创建一个黑色全屏无边框始终在顶部窗口,该窗口将根据您提供的遮罩不断更改形状。

您可以使用X形状扩展:


使用它,您可以创建具有不规则形状的窗口。(就像program
xeyes
那样)您可以创建一个黑色全屏无边框始终位于顶部的窗口,该窗口将根据您提供的遮罩不断改变形状。

这是一个非常实用的说明。不管怎样,站在屏幕上的人都会失明。你可以试着把一扇黑色的窗户移到你头部所在的地方,但黑色至少比白色深得多;)这是一个非常实用的注释。不管怎样,站在屏幕上的人都会失明。你可以试着把一扇黑色的窗户移到你头部所在的地方,但黑色至少比白色深得多;)