c - 从屏幕获取像素颜色

标签 c linux xlib

我正在尝试找出特定像素的颜色值(例如,将使用屏幕坐标 (100,100) 指定) 使用 xlib,这是一个 cli 工具。

这是我一直在尝试的一些代码(没有骰子):

Display *display;
    display = XOpenDisplay(NULL);
    Window root = XDefaultRootWindow(display);
    XImage *image;
    image = XGetImage(display,root,0,0,1,1,AllPlanes,XYPixmap);
    printf("pixel:%lu\n",XGetPixel(image,0,0));
    XCloseDisplay(display);

如果我将 XGetPixel 的 x,y 值更改为 0 以外的值,它总是打印 0

也许我找错了地方或使用了错误的功能

谢谢

最佳答案

我忘了从 1,1 更改宽度 正确设置它可以解决所有问题

关于c - 从屏幕获取像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33769463/

相关文章:

将这种十六进制字符串转换为 NSData/NSString

c++ - 如何在没有编译器的情况下在 Linux 上安装 gcc

x11 - 如何通过 Xlib 观察连接显示器的变化?

python - 如何使用 python 找到鼠标指针所在的监视器?

arrays - linux(树莓派)上使用 spidev 的 SPI

python - 我如何在 Xorg 中获取窗口的图标名称?

c++ - 未定义与未指定与实现定义的行为

C、将一个 float 拆分成单个数字

c++ - linux上有c++ tcp服务器吗?

c++ - 使用 NULL 句柄调用 dlsym() 不会返回 NULL,而是返回一个随机函数