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

本文关键字:像素 颜色 数据 获取 屏幕 | 更新日期: 2023-09-27 17:56:57

好的,所以我试图在这里变得更高级一点,我想学习如何做的一件事是从屏幕上的某个位置获取像素颜色或数据。我已经搜索了很多,但似乎大多数人都想用 c 或 c++ 来做到这一点。

我正在制作一个程序,可以扫描屏幕上某个位置的某种颜色。如果该位置包含任何带有橙色的内容,则我的窗口中的数字将变为 1 表示真或 0 表示假。我的窗户的背景是透明的,如果这很重要的话。

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

谢谢

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

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

    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;
    }

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

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