【发布时间】:2016-01-12 07:07:33
【问题描述】:
一段时间以来,我一直致力于在 java 中对图像进行灰度化。我使用的是colorConvertOp,但似乎在处理了大量图像之后,JVM 最终会在操作中以锁定状态挂起。
现在我已经开始使用了:
BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_BYTE_GRAY);
Graphics g = image.getGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
但是,我发现 CPU 出现了大幅峰值,以前低于 20%,现在已达到 120%。它似乎也导致了我的内存泄漏,并最终导致 OOMs。
有没有一种更简单、更快捷的方式在 Java 中进行灰度化,而无需使用尽可能多的 CPU/消除挂起的 JVM 错误?
【问题讨论】:
-
需要多少时间?
-
也许...您说的是一个错误,实际上是其中两个。你能给我们展示一个完整的崩溃示例吗?
-
Java 中的内存泄漏。使用垃圾收集器是不可能的......
-
图片大小是多少,原始格式是什么,...如果数据不可用,结果很难重现。
标签: java performance grayscale