BoringHeroes.ScreenReader.FindOnScreen C# (CSharp) Метод

FindOnScreen() публичный статический Метод

public static FindOnScreen ( string path, float percentage, bool shouldResize, Rectangle cropRect ) : TemplateMatch
path string
percentage float
shouldResize bool
cropRect System.Drawing.Rectangle
Результат AForge.Imaging.TemplateMatch
        public static TemplateMatch FindOnScreen(string path, float percentage, bool shouldResize, Rectangle cropRect)
        {
            Console.Beep();
            if (ShouldBringToFront) ControlInput.BringHeroesToFront();
            var template = ChangePixelFormat(new Bitmap(path), PixelFormat.Format24bppRgb);
            var src = GrabScreenGDI(gameScreen);
            var sourceImage = ChangePixelFormat(src, PixelFormat.Format24bppRgb);
            src.Dispose();
            if (shouldResize)
            {
                var rb = new ResizeBilinear(sourceImage.Width/4, sourceImage.Height/4);
                sourceImage = rb.Apply(sourceImage);
            }
            //sourceImage.Save("./images/resized.png");
            var ed = new HomogenityEdgeDetector();

            if (!cropRect.Size.IsEmpty)
            {
                var cb = new Crop(cropRect);
                sourceImage = cb.Apply(sourceImage);
                //sourceImage.Save("./images/resized_cropped.png");
            }

            //ed.Apply(Grayscale.CommonAlgorithms.BT709.Apply(sourceImage)).Save("./images/EdgeDetection.png");

            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);

            TemplateMatch topMatch = null;
            foreach (var m in matchings)
            {
                if (topMatch == null) topMatch = m;
                if (m.Similarity > topMatch.Similarity) topMatch = m;
                var col = Color.Red;
                col = Color.FromArgb((byte) ((int) (m.Similarity*255)), col);
                Drawing.Rectangle(data, m.Rectangle, col);
            }
            sourceImage.UnlockBits(data);
            //sourceImage.Save("./images/res.png");
            sourceImage.Dispose();
            template.Dispose();
            GC.Collect();
            return topMatch;
        }

Same methods

ScreenReader::FindOnScreen ( string path ) : TemplateMatch
ScreenReader::FindOnScreen ( string path, float percentage ) : TemplateMatch
ScreenReader::FindOnScreen ( string path, float percentage, bool shouldResize ) : TemplateMatch