public static float TestTemplateOnScreen(string path, float percentage)
{
var template = ChangePixelFormat(new Bitmap(path), PixelFormat.Format24bppRgb);
var sourceImage = ChangePixelFormat(GrabScreenGDI(gameScreen), PixelFormat.Format24bppRgb);
var rb = new ResizeBilinear(sourceImage.Width/4, sourceImage.Height/4);
sourceImage = rb.Apply(sourceImage);
var tm = new ExhaustiveTemplateMatching(percentage);
var matchings = tm.ProcessImage(sourceImage, template);
var data = sourceImage.LockBits(
new Rectangle(0, 0, sourceImage.Width, sourceImage.Height),
ImageLockMode.ReadWrite, sourceImage.PixelFormat);
MainWindow.Log("%" + percentage + " got " + matchings.Length + " matches");
if (matchings.Length != 1)
{
if (matchings.Length == 0)
{
percentage -= 0.005f;
}
if (matchings.Length > 1)
{
percentage += 0.0025f;
}
percentage = TestTemplateOnScreen(path, percentage);
}
foreach (var m in matchings)
{
Drawing.Rectangle(data, m.Rectangle, Color.LimeGreen);
}
sourceImage.UnlockBits(data);
//sourceImage.Save("./images/restest.png");
return percentage;
}