FromFile() public static method

Load bitmap from file.

The method is provided as an alternative of System.Drawing.Image.FromFile(string) method to solve the issues of locked file. The standard .NET's method locks the source file until image's object is disposed, so the file can not be deleted or overwritten. This method workarounds the issue and does not lock the source file.

Sample usage:

Bitmap image = AForge.Imaging.Image.FromFile( "test.jpg" );
public static FromFile ( string fileName ) : Bitmap
fileName string File name to load bitmap from.
return System.Drawing.Bitmap
Example #1
0
        public static MedalType DetermineMedalOnCard(Bitmap card)
        {
            ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);

            var goldSimilarity = tm.ProcessImage(card, Image.FromFile("TemplateImages/gold_medal.png"), new Rectangle(80, 40, 200, 200))[0].Similarity;

            if (goldSimilarity > 0.95f)
            {
                return(MedalType.Gold);
            }

            var silverSimilarity = tm.ProcessImage(card, Image.FromFile("TemplateImages/silver_medal.png"), new Rectangle(80, 40, 200, 200))[0].Similarity;

            if (silverSimilarity > 0.95f)
            {
                return(MedalType.Silver);
            }

            var bronzeSimilarity = tm.ProcessImage(card, Image.FromFile("TemplateImages/bronze_medal.png"), new Rectangle(80, 40, 200, 200))[0].Similarity;

            if (bronzeSimilarity > 0.95f)
            {
                return(MedalType.Bronze);
            }

            var noMedalSimilarity = tm.ProcessImage(card, Image.FromFile("TemplateImages/no_medal.png"), new Rectangle(80, 40, 200, 200))[0].Similarity;

            if (noMedalSimilarity > 0.95f)
            {
                return(MedalType.None);
            }

            return(MedalType.Uncertain);
        }
Example #2
0
        public static GameResult DetermineGameResult(Bitmap screenshot)
        {
            ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);

            if (screenshot.PixelFormat != PixelFormat.Format24bppRgb)
            {
                screenshot = screenshot.To24Bpp();
            }
            var win = tm.ProcessImage(screenshot, Image.FromFile("assets/victory_template.png"), new Rectangle(60, 50, 315, 80))[0].Similarity;

            if (win > 0.92f)
            {
                return(GameResult.Victory);
            }

            var defeat = tm.ProcessImage(screenshot, Image.FromFile("assets/defeat_template.png"), new Rectangle(60, 50, 265, 80))[0].Similarity;

            if (defeat > 0.92f)
            {
                return(GameResult.Defeat);
            }

            var draw = tm.ProcessImage(screenshot, Image.FromFile("assets/draw_template.png"), new Rectangle(60, 50, 265, 80))[0].Similarity;

            if (draw > 0.92f)
            {
                return(GameResult.Draw);
            }

            return(GameResult.Uncertain);
        }
        public ImageTransformation(string fileName)
        {
            this.image = Image.FromFile(fileName);


            //TODO: Threshold will probably be needed for noisy images
            //var thresholdFilter = new Threshold(100);
            //thresholdFilter.ApplyInPlace(image);
            //var invertFilter = new Invert();
            //var invertedImage = invertFilter.Apply(image);
        }