x11 xGetImage BadMatch错误

时间:2016-07-19 20:49:23

标签: c++ linux x11 xorg

我正在尝试创建一个简单的程序,它将转储当前屏幕并将其转换为png图像。但是,我目前收到错误“X错误请求失败:BadMatch(无效参数属性)”,这似乎是由XGetImage引起的。仔细阅读文档,这似乎是由两者中的任何一个引起的:

BadMatch - InputOnly窗口用作Drawable。

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);

1 个答案:

答案 0 :(得分:2)

你的宽度"和"身高"参数的顺序错误,交换它们。