0

背景

我正在为需要以编程方式放大当前桌面的台式计算机开发应用程序。它必须只显示放大的区域。

使用的语言是 C++,我目前正在运行 Ubuntu,但将来它将适用于其他平台。

当前方法

对于当前方法,使用了渲染窗口 (RW)。对于每次渲染迭代g,首先将其最小化,并通过XGetImage(X11)获取桌面图像(截图):

XImage *image = XGetImage(xDisplay, RootWindow(xDisplay, DefaultScreen(xDisplay)), 0, 0, screenWidth, screenHeight, AllPlanes, ZPixmap);

然后处理图像以提供缩放区域,并最大化和渲染 RW。

这种方法,即使没有缩放处理,由于最小化和最大化过程需要很长时间,并且不允许实时执行。

问题

如何渲染当前桌面的实时放大版本?

可以建议缩放库,但它们必须高效,即不能消耗太多处理,并且允许通过代码完全控制缩放区域,也就是说,它必须不需要鼠标/键盘。

特别说明

由于此应用程序的主要关注点是 Linux 兼容性,因此将感谢有关 Windows 的答案(如 Magnification-API 的操作方法),但不接受作为正确答案。

4

0 回答 0