如何获取屏幕上像素的颜色,包括光标

时间:2016-11-18 19:16:09

标签: c#

有没有办法在屏幕上获取像素的颜色,包括使用C#的光标?现在,这个

//Gets color at location
public Color GetColorAt(Point location)
{
    using (Graphics gdest = Graphics.FromImage(screenPixel))
    {
        using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero))
        {
            IntPtr hSrcDC = gsrc.GetHdc();
            IntPtr hDC = gdest.GetHdc();
            int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy);
            gdest.ReleaseHdc();
            gsrc.ReleaseHdc();
        }
    }

    return screenPixel.GetPixel(0, 0);
}

将返回像素的颜色,但在执行此操作时会忽略光标的颜色。因此,如果我将位置设置为500x500,拉出一张黑色图片,然后将我白色鼠标光标的中间盘旋在500x500标记处,则返回的颜色仍然是黑色而不是白色。有办法解决这个问题吗?

0 个答案:

没有答案