C++ 色盲a c++;程序

C++ 色盲a c++;程序,c++,windows,C++,Windows,我需要我的程序“看到”不同的颜色 我所需要的几乎就是一个函数,它通过x坐标和y坐标告诉我屏幕上单个像素的颜色。我希望有这样一个函数:P 坐标进入 string color; TellColor(126, 1024, color); cout << color; 字符串颜色; TellColor(1261024,彩色); 希望能有所帮助 GetPixel函数检索图像的红、绿、蓝(RGB)颜色值 指定坐标处的像素 COLORREF GetPixel( HDC hdc,

我需要我的程序“看到”不同的颜色

我所需要的几乎就是一个函数,它通过x坐标和y坐标告诉我屏幕上单个像素的颜色。我希望有这样一个函数:P

坐标进入

string color;
TellColor(126, 1024, color);
cout << color;
字符串颜色;
TellColor(1261024,彩色);
希望能有所帮助

GetPixel函数检索图像的红、绿、蓝(RGB)颜色值 指定坐标处的像素

COLORREF GetPixel(

    HDC hdc,    // handle of device context  
    int XPos,   // x-coordinate of pixel 
    int nYPos   // y-coordinate of pixel 
   );   
参数

hdc
标识设备上下文

nXPos
指定要检查的像素的逻辑x坐标

nYPos
指定要检查的像素的逻辑y坐标

nYPos
返回值

如果函数成功,则返回值为RGB值。如果像素位于图像的外部 当前剪辑区域,返回值为CLR_无效。 评论

像素必须位于当前剪裁区域的边界内。 并非所有设备都支持GetPixel。应用程序应调用GetDeviceCaps来确定 指定的设备是否支持此功能

另见

GetDeviceCaps, SetPixel

这个问题有多个方面:从屏幕上获取像素值(这取决于平台-您使用的是哪个操作系统?像素是在应用程序中还是在整个屏幕上的某个位置?),并将其r、g、b值转换为人类可读的单词。如果两个问题都需要回答,你最好分别问两个问题。你在哪个平台上?这将高度依赖于平台。我猜是因为你在说你在使用Windows?因为这涉及到I/O,所以关于所用平台的信息会很有用。你想以文本形式返回颜色吗?考虑到现代视频系统上可用的颜色范围,这可能有点冗长。什么东西应该被退回到只有一点品红的绿色(不是触摸或顶针)呢?我有另一个想法,(我必须停止!)。我的IDE有调色板,其中的颜色有名称。也许这些颜色来自操作系统,也许有一个API可以列出/迭代“已知”颜色?对于
hdc
,使用
GetDC(0)
。(完成后调用
ReleaseDC