我已经尝试了几个小时不同的方式来从文件中加载图像,请看看这两种方法:
public Image SlowLoad(string path)
{
return Image.FromFile(path);
}
public Image FastLoad(string path)
{
using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path)))
return Image.FromStream(ms);
}
第二种方法的速度是第一种方法的两倍。我错过了什么?为什么会这样?我不敢相信.NET开发人员不能简单地使用我编写的方法更快地实现Image.FromFile。所以,我在某个地方错了。请告诉我哪里错了。为什么第二种方法几乎快了两倍?我的代码完全正确吗?(线程安全等)。也许Image.FromFile更安全?
public Image SuperFastLoad(string path) { using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path))) return Image.FromStream(ms, false, false); }
- SwDevMan81void Main() { ImageLoader l = new ImageLoader(); System.Drawing.Image t = l.SuperFastLoad(@"test.bmp"); Console.WriteLine(t.Size.ToString()); } // Define other methods and classes here public class ImageLoader { public System.Drawing.Image SuperFastLoad(string path) { using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path))) { return System.Drawing.Image.FromStream(ms, false, false); } } }
- SwDevMan81