我有一个 C# 程序,它在处理大量图像后将它们保存到磁盘。由于需要保存这么多图像,这似乎需要相当长的时间。
现在,我想知道:有什么方法可以加快在 C# 中保存图像的速度?目前,我正在使用标准的bmp.Save(filename)方法。
如果有帮助,图像生成过程的一部分涉及使用锁定位更快地访问和修改像素值,所以也许当我这样做时,图像可以同时保存到磁盘?如果这个想法很愚蠢,我深表歉意,但我对 C# 还是有些陌生。
我有一个 C# 程序,它在处理大量图像后将它们保存到磁盘。由于需要保存这么多图像,这似乎需要相当长的时间。
现在,我想知道:有什么方法可以加快在 C# 中保存图像的速度?目前,我正在使用标准的bmp.Save(filename)方法。
如果有帮助,图像生成过程的一部分涉及使用锁定位更快地访问和修改像素值,所以也许当我这样做时,图像可以同时保存到磁盘?如果这个想法很愚蠢,我深表歉意,但我对 C# 还是有些陌生。
您当然可以为每个图像保存启动一个新线程。这会减少一点时间,但磁盘会成为瓶颈。
另一种选择是将图像保存到临时缓冲区列表中,然后将控制权返回给程序。然后有一个线程在后台将每个写入磁盘。当然,这只会使这种情况迅速发生。不过,它可能会满足您的需求。
我确信 .NET 已经实现了某种异步 I/O 来为您执行此操作。我知道 Windows 有,所以它在 .NET 中是有道理的。
这可能会有所帮助。
http://msdn.microsoft.com/en-us/library/kztecsys(v=vs.71).aspx