是否可以在 Rasbmc(Raspberry Pi)中用 C 语言检索屏幕上像素的颜色?我的计划是将它与 WiringPi 一起使用,根据屏幕上某些点的平均颜色来控制 RGB LED。
我研究了各种选项,包括使用 Python。一个站点提供了一些看起来很有用的例子,但我还没有让它们起作用。我已经尝试过 Python 和C 示例。
我正在使用的代码如下:
#include <X11/Xlib.h>
void get_pixel_color (Display *d, int x, int y, XColor *color)
{
XImage *image;
image = XGetImage (d, RootWindow (d, DefaultScreen (d)), x, y, 1, 1, AllPlanes, XYPixmap);
color->pixel = XGetPixel (image, 0, 0);
XFree (image);
XQueryColor (d, DefaultColormap(d, DefaultScreen (d)), color);
}
XColor c;
get_pixel_color(display, 30, 40, &c);
printf ("%d %d %d\n", c.red, c.green, c.blue);
但是我似乎无法让它工作。这些是我在使用 C 示例时遇到的错误:
我不明白的是我得到的第一个错误(其他错误似乎与 printf 函数的格式有关,所以我猜它们可以被忽略?)。数字常量是什么意思,是指 get_pixel_color 函数的 x 和 y 分量吗?这对我来说似乎很奇怪,但我知道我一定在这里误解了一些东西!