据我所知,从C#中的图片/图像文件中读取尺寸(宽度和高度)的最快方法是:
DateTime startDateTime = DateTime.Now;string sourceFolder = @"C:\Temp";// Get all files from sourcefolder, including subfolders.string[] sourceFiles = Directory.GetFiles(sourceFolder, "*", SearchOption.AllDirectories);foreach (string file in sourceFiles){ using (Stream stream = File.OpenRead(file)) { using (Image sourceImage = Image.FromStream(stream, false, false)) { Console.WriteLine(sourceImage.Width); Console.WriteLine(sourceImage.Height); } }}DateTime endDateTime = DateTime.Now;Console.WriteLine(string.Format( "Total duration [{0}] seconds. Total image count [{1}].", (endDateTime - startDateTime).TotalSeconds, sourceFiles.Length));
总持续时间[01855235]秒。总图像计数[33]。
这比原来的方法大约快250倍,原始方法:
DateTime startDateTime = DateTime.Now;string sourceFolder = @"C:\Temp";// Get all files from sourcefolder, including subfolders.string[] sourceFiles = Directory.GetFiles(sourceFolder, "*", SearchOption.AllDirectories);foreach (string file in sourceFiles){ using (Image sourceImage = Image.FromFile(file)) { Console.WriteLine(sourceImage.Width); Console.WriteLine(sourceImage.Height); }}DateTime endDateTime = DateTime.Now;Console.WriteLine(string.Format( "Total duration [{0}] seconds. Total image count [{1}].", (endDateTime - startDateTime).TotalSeconds, sourceFiles.Length));
总持续时间[474575263]秒。总图像计数[33]。
网站无须三方授权 · 安全稳定、维护方便