2013-10-09 37 views
1

我试图将许多(1000+)图像从tiff转换为jpg,但是在appr之后。 250-300张照片需要大约5-10秒才能拍摄更多图像,即使前250张拍摄了20秒。将Tif转换为Jpg需要太长的时间

这是我的代码使用方法:

foreach (string filePath in Directory.GetFiles(tifPath, "*.tif", SearchOption.AllDirectories)) 
{ 
    System.Drawing.Image.FromFile(filePath).Save(jpgPath + "\\" + Path.GetFileNameWithoutExtension(filePath) + ".jpg", ImageFormat.Jpeg); 
} 

是不是有什么毛病我的方法呢?提前致谢。

+0

您可以保存文件你从Directory.GetFiles接收到一个变量,以便程序不必执行那么多搜索 – HimBromBeere

+0

@HimBromBeere这不是问题。问题是内存泄漏,由于未处理的资源 – SynerCoder

回答

1

的图像需要处置,否则它停留在记忆:

foreach (string filePath in Directory.GetFiles(tifPath, "*.tif", SearchOption.AllDirectories)) 
{ 
    using (var image = System.Drawing.Image.FromFile(filePath)) 
    { 
     image.Save(jpgPath + "\\" + Path.GetFileNameWithoutExtension(filePath) + ".jpg", ImageFormat.Jpeg); 
    } 
} 

的详细信息,请参阅本网站关于使用语句:

http://www.dotnetperls.com/using

+0

谢谢,它修复了! –