X11 XGetImage badmatch错误(无效的参数属性)
X11 XGetImage BadMatch Error (invalid parameter attributes)
我正在尝试在Linux PC上捕获屏幕截图。代码的汇编很好,但是如果我尝试执行它,它会持续与以下相同的错误:
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一个输入窗口用作绘制。
badmatch一些参数或一对参数具有正确的类型和范围,但无法以请求要求的其他方式匹配。
您需要先映射窗口,然后再获取图像。使用
XMapRaised(d, root);
在致电XGetImage
相关文章:
- 主函数参数的属性
- C++ 命名参数习惯用语 - 未设置字符串属性
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 警告:忽略模板参数上的属性..在 std::unique_ptr (-wignore 属性)的声明中
- CMake 设置使用不正确的参数数调用的目标属性
- 在C++中使用参数包作为类属性是否可能和/或良好的实践
- 修改"参数视图属性"面板 (5.7.0) 上的默认属性
- 使用类属性调用具有非类型模板参数的模板函数
- 变量作为 C++11 属性参数
- 可以 main() 及其参数具有属性
- 可以将属性应用于构造函数参数
- 对于属性上的 NOTIFY 信号,如果我给它一个参数有什么区别?
- 存储模板参数包作为非类模板的属性
- 使用dllimport属性导入的函数参数
- X11 XGetImage badmatch错误(无效的参数属性)
- 用于指示返回值生存期的C++函数属性和参数相同
- GCC警告的含义:忽略模板参数上的属性(-Wignored属性)
- 有没有办法将别名模板推导到模板模板参数,同时仍保留其被推导上下文的属性
- 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?
- COM:始终需要方法参数属性