我目前有以下代码,它将截取屏幕截图并一次检查每个像素,如果它与我指定的颜色匹配。如果匹配,则它将鼠标移动到特定的像素位置。
如果有人能够提供帮助,我目前正在寻找一种更好更快的方法。
如果您不想阅读整个代码,我将在此处解释该过程:基本上,该程序将截取屏幕截图,并一次分析 1 个像素,并将其与所需颜色进行比较。它将从左上角的像素开始,一次水平向下移动一行,如果找不到像素,它将重新启动。这段代码也只适用于对我来说很好的 1080p 屏幕。
现在代码可以工作了,我只是在寻找一种比扫描 200 万 + 像素更有效的方法。
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap as Image);
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
bool found = false;
bool one = true;
bool two = false;
int x = 0;
int y = 0;
Bitmap myBitmap = bitmap;
while (found != true)
{
Color pixelColor = myBitmap.GetPixel(x, y);
if (pixelColor == Color.FromArgb(0, 0, 0))
{
Cursor.Position = new Point(x, y);
found = true;
}
if (one == true)
{
x = x + 1;
if (x >= 1920)
{
one = false;
two = true;
x = 0;
}
}
else if (two == true)
{
y = y + 1;
if (y >= 1080)
{
y = 0;
}
one = true;
two = false;
}
}