我正在尝试制作一个简单的程序,将当前屏幕转储并将其转换为png图像。但是,我当前收到错误“X error of failed request:BadMatch(invalid parameter attributes)”,这似乎是由XGetImage引起的。查看文档,这似乎是由以下两种情况之一造成的:
BadMatch-一个输入窗口用作可绘制窗口。
BadMatch-某些参数或参数对具有正确的类型和范围,但无法以请求所需的其他方式匹配。
我想是和第一个有关,但我不确定。如果是的话,我怎么能把屏幕弄得乱七八糟呢?
这是给出错误的代码片段:

Display *d = XOpenDisplay(NULL);

Window root = DefaultRootWindow(d);

int windowHeight = XDisplayHeight (d, 0);
int windowWidth = XDisplayWidth(d, 0);


// Get dump of screen
XImage *image = XGetImage(d, root, 0, 0, windowHeight, windowWidth, AllPlanes, ZPixmap);

最佳答案

“width”和“height”参数的顺序不正确,请将它们互换。

关于c++ - x11 xGetImage BadMatch错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38468252/

10-09 15:55