如何在C#中搜索屏幕上的图像?

时间:2011-02-12 12:53:29

标签: c# .net image-recognition

我想使用C#或其他.NET语言(如powershell)在屏幕上搜索图像。像我在文件系统中给出一个图像位置,代码将整个屏幕视为图像,并在大图像(屏幕)中搜索文件系统中的图像,然后返回屏幕上的图像位置。我在.net类中找不到这种东西。

感谢。

2 个答案:

答案 0 :(得分:19)

这是一个非常具体的问题,这就是为什么你不会在.NET Framework中找到它。你应该用较小的部分分解你的问题:

从磁盘上的文件加载图片

使用System.Drawing.Image.FromFile()

获取屏幕图像,即屏幕截图

使用System.Drawing.Graphics.CopyFromScreen()

Bitmap CaptureScreen()
{
    var image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
    var gfx = Graphics.FromImage(image);
    gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
    return image;
}

在图片中查找图片

请参阅this question的答案。

答案 1 :(得分:0)

我制作了一个程序,它使用了用c#编码的lib,它会在较大的图像中返回小图像的x和y的值(截图),你可以在这里查看所有细节https://www.nulled.io/topic/22223-an-advanced-image-search-library-saeedsearchdll/