【发布时间】:2013-03-27 12:52:45
【问题描述】:
我需要将一些 BMP 图像附加在一起。您可能知道,BMP 图像有一个 54 字节的标题。我将自己的新标头写入一个新文件,然后我需要遍历 BMP 文件列表并将它们相互附加,但我需要跳过每个文件的前 54 个字节。
这是一个千兆像素图像拼接项目。我会使用已经存在的软件,除了图像中没有重叠(但我知道平铺布局)。我需要能够将一些非常大的 BMP 文件 (192,000x1080) 作为行并将它们附加到另一个下方以创建最终图像,即 20.7 千兆像素。虽然我有 32GB 的内存,但最终的 20.7 GB 图像将是 62.2GB(然后我会将其转换为 PNG)。
鉴于这些巨大的内存需求,我如何在不使用所有内存的情况下读取每个 BMP 并将它们附加到最终文件中?如果可能,我想使用字节数组;因为这些是未压缩的 BMP,所以可以这样读取它们并保存到另一个文件,而无需使用任何 GDI 对象。
【问题讨论】:
-
>如何在不使用所有内存的情况下读取每个 BMP 并将它们附加到最终文件?流式传输文件。
标签: c# arrays byte filestream