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

标签 java image

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

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

最佳答案

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

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

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

关于java - 以低内存消耗在 Java 中调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349079/

相关文章:

java - Hibernate 很难使用 MySQL 创建表

java - JFace 对话框始终在顶部且无模式

java - 使用 JScrollPane 将 BufferedImage 添加到 JFrame

HTML - 在新行中放置图像

java - 使用 SpringJMS 设置每条消息的过期时间

java - Android Eclipse Java 将数组内容与字符串进行比较。不工作?

java - java作为安全语言的解释?

PHP:检查图像质量/像素化的代码(不是压缩率而是真实质量)?

c# - 从位图图像裁剪图像

Java:将图像旋转90度