你好聪明的程序员,
我需要将小图像合并成一个尺寸约为 7600 x 7600 像素的大图像。当我在内存中创建它时,它需要太多的内存,我负担不起。
我认为这样做的好方法是制作缓冲区(对于我想放入大图像中的每张小图片)并直接写入文件(excatly blob - on azure)。有人知道怎么做(任何免费图书馆?)我搜索了谷歌但没有答案(可能是错误的问题 - 我的英语很差)。
如果您谈论的是“bmp”文件,您可以通过将数据直接写入位图文件格式的文件流来实现。这很简单,实际上“bmp”是最简单的图像格式,所以我怀疑你会有什么困难。这里有 2 篇有用的文章详细解释了位图文件格式:
我不知道有任何图像库可以即时将编码转换为 BMP 格式,因此恐怕您必须自己实现。幸运的是,BMP 格式在不使用压缩时非常简单,而使用 RLE 压缩则不是很困难。它基本上是一个标题,后跟图像像素的原始字节,一行接一行。
这意味着您将不得不加载一行中的所有图像(如果您的目标图像是 30 x 40 图像,您将需要加载 30。)除非您的输入图像也是 BMP 格式并且您没有不介意创建自定义阅读器。
您可以通过在 Google 中输入“BMP 格式”来获取 BMP 文件格式(维基百科也有。)