AForge.Imaging.Image.FromFile C# (CSharp) Method

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
        public static System.Drawing.Bitmap FromFile( string fileName )
        {
            Bitmap loadedImage = null;
            FileStream stream = null;

            try
            {
                // read image to temporary memory stream
                stream = File.OpenRead( fileName );
                MemoryStream memoryStream = new MemoryStream( );

                byte[] buffer = new byte[10000];
                while ( true )
                {
                    int read = stream.Read( buffer, 0, 10000 );

                    if ( read == 0 )
                        break;

                    memoryStream.Write( buffer, 0, read );
                }

                loadedImage = (Bitmap) Bitmap.FromStream( memoryStream );
            }
            finally
            {
                if ( stream != null )
                {
                    stream.Close( );
                    stream.Dispose( );
                }
            }

            return loadedImage;
        }

Usage Example

Beispiel #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);
        }
All Usage Examples Of AForge.Imaging.Image::FromFile