Con*_*ack 3 xorg x11 screenshot
对于问题1和2,我将采取野生猜测它们正在访问通过根窗口的绘制RootWindow(3) ,然后使用XGetImage(3)复制根窗口的像素数据的某处,以进一步处理它(例如,它倾倒到PNG)。
这些手册页可能有帮助: XOpenDisplay (3)、 DefaultScreen (3)、 RootWindow (3)、 XGetImage (3)
另请参阅StackOverflow 上的这个问题。
对于问题3,如果使用Xinerama,会出现多个屏幕,应用程序可以获取每个屏幕的位置和大小信息,这对于选择要复制的区域再次很有用XGetImage(...)
。
当然,这一切都假设您使用的是 Xlib。我听说有一个更好的替代方案,称为XCB,但到目前为止我个人从未使用过它。