X11 XGetImage BadMatch 错误(参数属性无效)
X11 XGetImage BadMatch Error (invalid parameter attributes)
我正在尝试在我的 linux 电脑上截取屏幕截图。代码的编译很好,但是如果我尝试执行它,它会不断抛出如下相同的错误:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 7
Current serial number in output stream: 7
谁能帮我找出问题所在?
代码如下:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
using namespace cv;
int main()
{
Display* d = XOpenDisplay(nullptr);
auto root = DefaultRootWindow(d);
auto img = XGetImage(d, root, 0, 0, 1000, 1000, AllPlanes, ZPixmap);
auto rimg = Mat(1000, 1000, CV_8UC4, img->data);
imshow("test image", rimg);
waitKey(0);
return 0;
}
来自https://tronche.com/gui/x/xlib/graphics/XGetImage.html
BadMatch 将 InputOnly window 用作 Drawable。
BadMatch 某些参数或参数对具有正确的类型和范围,但无法以请求所需的其他方式匹配。
您需要先映射 window,然后才能获取它的图像。使用
XMapRaised(d, root);
调用 XGetImage 之前
我正在尝试在我的 linux 电脑上截取屏幕截图。代码的编译很好,但是如果我尝试执行它,它会不断抛出如下相同的错误:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 7
Current serial number in output stream: 7
谁能帮我找出问题所在?
代码如下:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
using namespace cv;
int main()
{
Display* d = XOpenDisplay(nullptr);
auto root = DefaultRootWindow(d);
auto img = XGetImage(d, root, 0, 0, 1000, 1000, AllPlanes, ZPixmap);
auto rimg = Mat(1000, 1000, CV_8UC4, img->data);
imshow("test image", rimg);
waitKey(0);
return 0;
}
来自https://tronche.com/gui/x/xlib/graphics/XGetImage.html
BadMatch 将 InputOnly window 用作 Drawable。
BadMatch 某些参数或参数对具有正确的类型和范围,但无法以请求所需的其他方式匹配。
您需要先映射 window,然后才能获取它的图像。使用
XMapRaised(d, root);
调用 XGetImage 之前