C# 中图像位图和 fromFile 方法之间的差异

本文关键字:之间 方法 fromFile 图像 位图 | 更新日期: 2023-09-27 18:33:41

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

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

另一个是:

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

如果我需要读取大量图像(近 100TB 数据(,谁能告诉我哪一个会运行得更快。

C# 中图像位图和 fromFile 方法之间的差异

我发现有两种方法可以读取图像信息

你知道,如果它只是你想要的图像信息,那么我不会使用任何一个函数,因为两者都将整个图像从磁盘加载到内存中 - 这是对计算机资源的相当浪费。

相反,您应该只加载图像文件头,无论它是EXIF;位图信息标头或其他取决于图像格式。 有一些方法可以通过 .NET 加载此类信息(请参阅下面的链接(。

图像标题

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

  • 它有多宽?
  • 有多高?
  • 每像素多少位(颜色深度(?

。等等。 这些问题都可以通过首先读取图像文件头来回答。 顾名思义,有关图像的信息通常位于文件开头附近。 确切的格式和布局取决于所讨论的文件格式。见BMP;更多信息的 PNG 资源。

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

  • 在不加载 .NET 图像的情况下获取图像宽度和高度?
  • 在不读取整个文件的情况下获取图像尺寸
  • 位图存储