我想捕獲我的Linux PC上的屏幕截圖。彙編代碼是好的,但如果我試圖執行它,它不斷拋出同樣的錯誤如下:X11 XGetImage BadMatch錯誤(無效參數屬性)
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;
}
是您的顯示環境變量設置過嗎?如果是,請嘗試使用NULL而不是nullptr – cup
我沒有碰到任何其他的東西。而NULL不起作用。 –
如果XOpenDisplay的參數是NULL或nullptr,它將使用DISPLAY環境變量的值。如果你的DISPLAY環境變量沒有設置,那麼它會給你錯誤。 – cup