2010-10-24 66 views
-1
final BufferedImage img = new BufferedImage(3500, 2480, BufferedImage.TYPE_BYTE_INDEXED); 
final Graphics2D g2D = img.createGraphics(); 
g2D.setBackground(Color.white); 
g2D.clearRect(0, 0, width, height); 

(完整代碼在this的問題)。如何編寫圖像而不會導致Java內存不足?

此代碼導致Java堆空間異常,儘管我已將jvm屬性設置爲3GB。這可能是問題嗎?

無論如何不可能用較少的內存繪製圖像嗎?我在打印A4大小的BMP之後,只能使用文本。大多數時候它只是黑白色,而有時我需要使用藍色,粉紅色和灰色。

+0

作爲你的鏈接問題不再可用(至少不適合我?)你能提供完整的代碼嗎? – 2011-10-24 13:11:28

回答

0

你的問題中陳述的事實有些非常可疑。除非我被誤認爲,BufferedImage每個像素使用1個字節,因此3500 x 2480字節...大約10M字節。但是你聲稱已經將堆大小設置爲3Gbytes。

您實際使用了哪些JVM選項?

+0

Env.MAVEN_OPTS = -Xmx1024M(1GB現在) – simpatico 2010-10-24 14:57:58

+0

這就是maven構建的設置。您在運行應用程序時使用什麼? – 2010-10-24 15:18:28

+0

這是設置:安裝nbm:運行平臺,這是我如何運行它。 – simpatico 2010-10-25 00:30:21

相關問題