C++ 使用Xcb而不是Xlib获取像素的颜色

C++ 使用Xcb而不是Xlib获取像素的颜色,c++,xlib,xcb,C++,Xlib,Xcb,我使用几个窗口管理器,如果我理解正确,它们使用xlib。(棒极了,openbox,fluxbox…) 我使用以下代码检测像素中的“红色”量: #include <iostream> #include <X11/Xlib.h> #include <X11/Xutil.h> using namespace std; int main(int argc, char *argv[]){ XColor c; Display *d = XOpenDispl

我使用几个窗口管理器,如果我理解正确,它们使用xlib。(棒极了,openbox,fluxbox…)

我使用以下代码检测像素中的“红色”量:

#include <iostream>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
using namespace std;
int main(int argc, char *argv[]){
    XColor c;
    Display *d = XOpenDisplay((char *) NULL);
    int RED;
    int x=atoi(argv[1]);
    int y=atoi(argv[2]);
    XImage *image;
    image = XGetImage (d, RootWindow (d, DefaultScreen (d)), x, y, 1, 1, AllPlanes, XYPixmap);
    c.pixel = XGetPixel (image, 0, 0);
    XFree (image);
    XQueryColor (d, DefaultColormap(d, DefaultScreen (d)), &c);
    RED=c.red/256;
    cout << RED;
}
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[]){
XColor c;
Display*d=XOpenDisplay((char*)NULL);
红色;
intx=atoi(argv[1]);
int y=atoi(argv[2]);
XImage*图像;
image=XGetImage(d,根窗口(d,默认屏幕(d)),x,y,1,1,所有平面,XYPixmap);
c、 像素=XGetPixel(图像,0,0);
XFree(图像);
XQueryColor(d、DefaultColormap(d、DefaultScreen(d))、&c);
红色=c.RED/256;
不能我刚刚用
#include
替换了
#include

太棒了…

我刚刚用
#include
替换了
#include


惊人…

这毫无意义。它与窗口管理器是否使用Xlib或XCB无关,也与替换包含工作无关。这应该无法使用您显示的代码进行编译。这毫无意义。它与窗口管理器是否使用Xlib或XCB无关,也与替换包含工作无关。这应该是正确的st无法使用显示的代码编译。窗口管理器与此无关。窗口管理器与此无关。