在屏幕上指定坐标获取像素颜色

3

我需要获取指定位置像素的颜色。经过一些研究,这是我得到的代码。

#include<windows.h>
#include<iostream>

int main()
{

    HDC dc = GetDC(NULL);
    COLORREF color = GetPixel(dc, 100, 100);
    ReleaseDC(NULL, dc);

    std::cout << GetRValue(color);
    std::cout << GetGValue(color);
    std::cout << GetBValue(color);

    return 0;
}

我没有收到任何错误提示,但是显示了三个奇怪的字符(我无法复制和粘贴到这里)。我该怎么做才能成功获取像素颜色?
1个回答

7

这只是您打印值的方式不同。尝试改成这样

std::cout << static_cast<unsigned>(GetRValue(color)) << '\n';

GetRValue(color)等返回一个字节值,cout <<将其解释为字符。强制转换为unsigned可以使cout <<打印整数值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接