据我所知,从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]。
网站无须三方授权 · 安全稳定、维护方便