我目前正在开发 ac# 开源照片马赛克软件(Sourceforge Link)。该软件将大量小照片(图块)拼接成一张大图像。
由于最终的图像大小通常为 20k 像素乘以 15k 像素,因此我只保存了一张关于如何在内存中排列图块的地图。为了构建最终图像,我将其构建为部分,即 8 行带(也可以是任何其他数字)。
在 bmps 的情况下,通过首先写入 bmp 标头并随后将 ARGB 数据附加到此文件,可以轻松地逐块保存此数据。
但是生成的 bmp 太大而无法进一步处理(例如,将它们交给一些海报印刷公司)。因此,我想将这些大图像保存为我的硬盘上的 jpg。
现在的问题是,由于 jpg 是压缩的,因此以块的形式写入数据似乎非常棘手(普通的 Bitmap.Save() 函数将首先将完整图像加载到内存中,因此不适用),因为写入纯的、未压缩的 RGB 数据不会的。
应该存在在聚会中编写 jpg 的基本功能,因为据我所知,jpg 的压缩算法适用于块或 8x8 像素。
我查看了几个图像库(FreeImage、GraphicsMagick、LibTiff.NET)来寻找这个问题的解决方案,但找不到任何解决方案。LibTiff 基本上具有所需的功能,但仅适用于 tiff 图像格式。
非常感谢你的帮助!最大限度