c#:将JPG保存在部分中

mgu*_*lde 6 c# jpeg image chunked-encoding

我目前正在研究ac#开源照片拼接软件(Sourceforge Link).该软件将大量小照片(瓷砖)拼接成一个大图像.

由于最终图像大小通常为20k px乘以15k px,我只保存了如何在内存中排列图块的地图.为了构建最终图像,我正在构建它的部分,即8行的带(也可以是任何其他数字).

在bmps的情况下,通过首先写入bmp头并随后将ARGB数据附加到该文件,然后可以通过块容易地保存该数据块.

但是由此产生的bmps对于进一步处理来说太大了(例如将它们交给一些海报印刷公司).因此,我想在我的硬盘上将这些大图像保存为jpgs.

现在的问题是,由于jpgs被压缩,以块的形式写入数据似乎非常棘手(正常的Bitmap.Save()函数会将完整的图像首先加载到内存中,因此不适用),因为编写纯净的,未压缩的RGB数据不会这样做.

在聚会中编写jpgs的基本功能应该存在,因为据我所知,jpg的压缩算法适用于块或8x8 px.

我查看了几个图像库(FreeImage,GraphicsMagick,LibTiff.NET)来找到这个问题的解决方案,但找不到任何解决方案.LibTiff基本上具有所需的功能,但仅适用于tiff图像格式.

非常感谢你的帮助!马克斯

Emi*_*dın 1

既然你没有提到OpenJPEG library,我想你可能已经错过了。

http://www.openjpeg.org/

当然,您将需要一些包装器,但我认为您可以使用该库实现您想要做的事情。但我知道这不是最简单的解决方案。如果其他人提出更好、更简单的建议,您可以跳过这个库。

编辑:这看起来非常不完整,但可能会有所帮助,因为它是 C# 代码。http://www.codeproject.com/KB/graphics/SimpleJpeg.aspx