C:为什么我的程序中的输出数字不在标准 RGB 范围内:0-255?

Lin*_*eak 5 c linux colors

仅凭对 C 的最低限度的了解,我将以下代码放在一起,我在 Linux Mint 19 上编译了这些代码:

gcc-7 -o getPixelColor getPixelColor.c -L/usr/X11/lib -lX11
Run Code Online (Sandbox Code Playgroud)

并在没有参数的情况下执行:

./getPixelColor
Run Code Online (Sandbox Code Playgroud)
gcc-7 -o getPixelColor getPixelColor.c -L/usr/X11/lib -lX11
Run Code Online (Sandbox Code Playgroud)

题:

我不知道为什么输出数字不在标准RGB 范围内:0-255?

当前输出示例(取自桌面图片,[0,0]):

./getPixelColor
Run Code Online (Sandbox Code Playgroud)

预期输出(使用 Wine 运行的 Windows 颜色选择器获取):

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.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);
}

int main(int argc, char const *argv[])
{
    Display *disp = XOpenDisplay(":0");
    XColor pixel_color;
    get_pixel_color(disp, 0, 0, &pixel_color);
    printf("%d %d %d\n", pixel_color.red, pixel_color.green, pixel_color.blue);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道我需要将值转换为标准范围,那么您能否就公式提出建议?