gpt4 book ai didi

python - 如何获得屏幕的像素颜色? (树莓派)

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:31 26 4
gpt4 key购买 nike

是否可以在 Rasbmc(Raspberry Pi)中用 C 检索屏幕上像素的颜色?我的计划是将它与 WiringPi 一起使用,根据屏幕上某些点的平均颜色来控制 RGB LED。

我研究了各种选项,包括使用 Python。一个网站提供了一些看起来很有用的例子,但我还没有让它们发挥作用。我已经尝试过 Python 和 C Examples .

我使用的代码如下:

#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 示例时遇到的错误:

Error Message

我不明白的是我得到的第一个错误(其他似乎与 printf 函数的格式有关,所以我想它们可以忽略?)。数字常量是什么意思,是指 get_pixel_color 函数的 x 和 y 分量吗?这对我来说似乎很奇怪,但我知道我一定是误解了这里的某些东西!

最佳答案

您对 get_pixelcolor 的调用不在函数中。

你似乎完全缺少一个主要功能,除非我完全遗漏了一些东西。您正在调用程序 block 外部的函数。在 C 中,该格式保留用于原型(prototype)制作。你的编译器需要一个原型(prototype)(原型(prototype)是粗略地描述一个函数,“接受这些参数,返回这个”,在你实际描述它的实现之前。如果你不熟悉这个术语。),当你给它一个功能。

至少你在看:

int main(){
XColor c;
get_pixel_color(display, 30, 40, &c);
printf ("%d %d %d\n", c.red, c.green, c.blue);
return 0;
}

试一试,看看它是否有效。

如果这是一个已经有 main 的更大程序的一部分,只需调用不同的函数并从 main 调用它。

关于python - 如何获得屏幕的像素颜色? (树莓派),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19507317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com