0

所以我有一个应用程序可以生成一些位图,然后将它们拼接在一起。这在理论上和小规模上都很好,但是当我将相当大的位图拼接在一起时就会出现问题。首先,我无法生成足够大的位图以容纳我的位图。在我的算法中,生成了一个大的位图,它可以将其他位图保存在其中,然后我将另一个位图绘制到它上面。我在 C# 中完成所有这些并使用System.Drawing.Bitmap该类。

具体来说,我注意到此设置中的问题:

Bitmap bmp = new Bitmap(resolution, resolution);

哪里resolution = 25000

所以我的问题基本上可以归结为:

有没有一种有效的方法可以将多个位图连接在一起而不必最大化内存?

4

1 回答 1

3

这将需要直接打开数据并将其保存到文件中。您只需使用两个较小的位图并将正确的数据直接流式传输到文件中,而不是为大位图分配足够的空间。由于您正在流式传输到文件,因此实际上并没有将整个图像加载到一大块 RAM 中。我不会详细介绍执行此操作的代码,但本质上它涉及了解图像的格式(包括标题信息等)并了解如何为您的语言使用文件 IO 流。

于 2013-08-14T22:23:44.727 回答