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

Posted

技术标签:

【中文标题】如何在 C# 中搜索屏幕上的图像?【英文标题】:How to search for an image on screen in C#? 【发布时间】:2011-06-26 01:50:09 【问题描述】:

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

谢谢。

【问题讨论】:

您能稍微澄清一下您的问题吗?屏幕上出现图像是什么意思?它是如何/在哪里显示的? @Darin 我编辑了我的问题,请再次阅读,看看您是否理解我的问题。谢谢。 【参考方案1】:

这是一个非常具体的问题,这就是您在 .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 :)【参考方案2】:

我制作了一个程序,它使用了一个我用 c# 编码的库,它将返回一个大图像(屏幕截图)中一个小图像的 x 和 y 的值,您可以在此处查看所有详细信息 https://www.nulled.io/topic/22223-an-advanced-image-search-library-saeedsearchdll/

【讨论】:

以上是关于如何在 C# 中搜索屏幕上的图像?的主要内容,如果未能解决你的问题,请参考以下文章

有没有很好的例子说明如何在 selenium webdriver C# 中截取屏幕截图,然后裁剪并保存图像?

Flutter/Dart - 如何在其他屏幕上的图像选择器后更新图像

如何在移动屏幕上的文本顶部对齐右侧图像

如何识别某个图像何时消失

如何在按下按钮后单击屏幕上的图像

如何通过 C# 代码在 Android 上的 Unity3D 中创建图像缩略图?