有没有办法在C#中创建片段中的位图?

时间:2016-09-03 09:34:19

标签: c# bitmap

我试图创建一个巨大的位图52000x29250 PixelFormat.Format32bppPArgb这是正常的方法,因为它需要~24.3GB的RAM。那么我能以某种方式在片段中创建一个位图并从这些片段创建一个巨大的位图吗?

1 个答案:

答案 0 :(得分:3)

答案是您永远不需要将位图加载到内存中。只需将其视为字节的文件流。构造一个读/写类来处理实际的位图二进制格式,并使用该读/写类来寻址位图数据。

这允许您以高效内存的方式构造和处理任何比例的位图。您可以通过增加流缓存来调整和调低性能。

大规模位图处理的关键是像处理数据库一样处理它;没有程序员将整个数据库读入内存;所以你不需要为位图做这件事。

PixelFormat.Format32bppPArgb位图的格式已有详细记录,如果你在谷歌周围,你可能会找到一个现有的读者/作家类。