C#如何从屏幕获取像素颜色/数据?

时间:2014-04-07 05:12:15

标签: c# colors screen pixel

好的,所以我试图在这里稍微提高一点,我想要学习的一件事就是从屏幕上的某个位置获取像素颜色或数据。我搜索了很多,但似乎大多数人都希望用c或c ++来做。

我制作一个程序,扫描屏幕上某个颜色的位置。如果该位置包含橙色的任何内容,那么我窗口中的数字将变为1表示为true,0表示为false。 我的窗口背景是透明的,如果这很重要的话。

我只遇到过Graphics.CopyFromScreen()和bitmap.GetPixel();

由于

2 个答案:

答案 0 :(得分:0)

请参阅以下参考资料,我认为这就是您所需要的:

http://www.codeproject.com/Articles/24850/Geting-pixel-color-from-screen-shoot-image

答案 1 :(得分:0)

要从屏幕捕获特定矩形,请使用以下代码

    public Bitmap CaptureFromScreen(Rectangle rect)
    {
        Bitmap bmpScreenCapture = null;

        if (rect == Rectangle.Empty)//capture the whole screen
        {
            rect = Screen.PrimaryScreen.Bounds;
        }

        bmpScreenCapture = new Bitmap(rect.Width,rect.Height);

        Graphics p = Graphics.FromImage(bmpScreenCapture);


            p.CopyFromScreen(rect.X,
                     rect.Y,
                     0, 0,
                     rect.Size,
                     CopyPixelOperation.SourceCopy);


        p.Dispose();

        return bmpScreenCapture;
    }

要获取颜色从特定位置使用功能

    public Color GetColorFromScreen(Point p)
    {
        Rectangle rect = new Rectangle(p, new Size(2, 2));

        Bitmap map = CaptureFromScreen(rect);

        Color c = map.GetPixel(0, 0);

        map.Dispose();

        return c;
    }
相关问题