【发布时间】:2016-05-30 05:09:46
【问题描述】:
我需要逐个像素地读取和写入图像(我正在生成分形)。当我尝试使用图像尺寸时,我意识到当图像尺寸很大(比如 24000x18000)时使用BufferedImage 写入图像会导致OutOfMemoryError。为了解决这个问题,我使用了-Xmx -Xms 来增加堆大小。
有没有办法以像素方式写入图像而不必将整个图像加载到内存中?读取(和修改)大图像也是如此。
编辑
我正在逐个像素,从左到右,从上到下。
【问题讨论】:
-
您是从左到右、从上到下逐像素生成图像吗?如果是这样,您也许可以安排连续编写它。但是,如果您需要在写入之前完全生成图像,则必须先将其存储在内存中。你的问题不清楚...
-
@JimGarrison 是的,我从左到右,从上到下逐个像素地进行操作。能否请您回答如何连续执行?
-
您可能不得不绕过标准图像代码并直接编写图像格式。这可能是相当多的工作,并且超出了我的专业知识范围。也许其他人会回答。我建议您重写问题以更清楚地解释您在做什么,而不是进行编辑。
标签: java image out-of-memory bufferedimage