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

时间:2012-11-12 18:08:18

标签: java image

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

在Java中,有没有办法将非常大的图像调整到合理的大小而不将整个图像解压缩到内存中?

1 个答案:

答案 0 :(得分:3)

我认为在这个主题中已经在某种程度上讨论过:What is the best java image processing library/approach?

然而,Java本身提供了一种图像处理和处理API,它具有以块的形式读取(并因此操纵)像素数据的可能性。您可以围绕它编写代码以按预期执行,但根据您的需要,实际的性能改进不值得。

确保根据您的需求实现最佳性能的方法是通过JNI,通过使用某种本机解决方案(如纯C OpenGL代码)来处理图像加载和处理。但你肯定意识到这可能被认为是矫枉过正,并且完全不值得麻烦,出于同样的原因。同样,这里已经讨论过:Load a PNG image into Java as BufferedImage through JNI C code

相关问题