在Java中以低内存消耗调整图像大小

在Java中以低内存消耗调整图像大小,java,image,Java,Image,ImageMagick的“convert”命令行工具允许您在执行其操作时指定内存使用限制。我想找到一个提供相同选项的Java图像大小调整库。我的应用程序有时会得到非常大的JPEG图像,需要将其缩小到合理的大小。例如,一个11600 x 5152的图像仅仅解压缩它就会消耗大约227MB的内存;调整大小的过程最终使用了更多的东西 在Java中,有没有一种方法可以在不解压缩内存中的整个图像的情况下,将非常大的图像调整到合理的大小?我认为在本主题中已经讨论过这一点: 然而,Java本身提供了一个图像操作

ImageMagick的“convert”命令行工具允许您在执行其操作时指定内存使用限制。我想找到一个提供相同选项的Java图像大小调整库。我的应用程序有时会得到非常大的JPEG图像,需要将其缩小到合理的大小。例如,一个11600 x 5152的图像仅仅解压缩它就会消耗大约227MB的内存;调整大小的过程最终使用了更多的东西


在Java中,有没有一种方法可以在不解压缩内存中的整个图像的情况下,将非常大的图像调整到合理的大小?

我认为在本主题中已经讨论过这一点:

然而,Java本身提供了一个图像操作和处理API,其特点是可以读取(并因此操作)块中的像素数据;您可以围绕它编写代码以按预期的方式执行,但根据您的需要,实际的性能改进并不值得费心

根据您的需要,实现最佳性能的可靠方法是通过JNI,使用某种本机解决方案(如纯C OpenGL代码)来处理图像加载和处理。但你肯定意识到,出于同样的原因,这可能被认为是过火了,根本不值得麻烦。同样,这里已经讨论过: