c#中图像位图和fromFile方法之间的区别

时间:2016-02-08 22:11:04

标签: c# image image-processing bitmap system.drawing

我发现使用默认的c#库有两种方法可以读取图像信息。其中之一是

 System.Drawing.Image image = new Bitmap("file..path");

另一个是:

Image image = Image.FromFile("file..path");

如果我需要阅读大量图片(近100TB数据),可能有人告诉我哪一个会运行得更快。

1 个答案:

答案 0 :(得分:1)

  

我发现有两种方法可以阅读图片信息

你知道,如果它只是你所追求的图像信息,那么我就不会使用任何一种功能,因为它们都将整个图像从磁盘加载到内存 - 这是一种相当浪费的计算机资源练习。

相反,您应该只加载图像文件标题,无论它是EXIF; BITMAPINFOHEADER或其他,具体取决于图像格式。有很多方法可以通过.NET加载这些信息(参见下面的链接)。

图片标题

除了RAW图像文件格式(不一定是从SLR相机输出的格式)之外,大多数图像文件格式都有一个标题,可以在将图像栅格数据从磁盘加载到内存之前加载。事实上,通常要求首先读取标头,否则您将不知道在加载图像之前要分配多少内存。

  • 它有多宽?
  • 多高?
  • 每个像素有多少种颜色?

......等等。首先通过读取图像文件头来回答这些问题。顾名思义,有关图像的信息通常靠近文件的开头。确切的格式和布局取决于相关的文件格式。见BMP; PNG资源了解更多信息。

以下是有关加载图片标题的一些建议