我目前正在实现一个接受两个位图对象的方法。我们可以假设所述对象具有相同的尺寸等。该方法的返回是像素变化的列表(这存储在自制对象中)。这是以迭代的方式开发的,因此当前的实现是一个基本的...只需通过每个像素并将其与其对应物进行比较。这种产生变化的方法比可接受的速度慢(500ms左右),因此我正在寻找更快的过程。
我想到的想法是将图像分解为条带并在新线程上运行每个比较,或者首先将屏幕区域作为对象进行比较,然后根据需要进行详细检查。
您理解的当前代码......
for (int x = 0; x < screenShotBMP.Width; x++)
{
for (int y = 0; y < screenShotBMP.Height; y++)
{
if (screenShotBMP.GetPixel(x, y) != _PreviousFrame.GetPixel(x, y))
{
_pixelChanges.Add(new PixelChangeJob(screenShotBMP.GetPixel(x,y), x, y));
}
}
}
正如您将从代码中扣除的那样,该类的概念是截取屏幕截图并从之前拍摄的屏幕截图中生成像素更改列表。