我正在尝试创建一个简单的程序,它将转储当前屏幕并将其转换为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);
答案 0 :(得分:2)
你的宽度"和"身高"参数的顺序错误,交换它们。