Я пытаюсь сделать простую программу, которая будет выводить текущий экран и преобразовывать его в изображение 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);
Ваши аргументы «width» и «height» находятся в неправильном порядке, меняйте их местами.
Других решений пока нет …