C++ 色盲a c++;程序
我需要我的程序“看到”不同的颜色 我所需要的几乎就是一个函数,它通过x坐标和y坐标告诉我屏幕上单个像素的颜色。我希望有这样一个函数:P 坐标进入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,
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
)