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问题中的完整代码)。
虽然我已将jvm属性设置为3GB,但此代码会导致Java堆空间异常。这可能是问题吗?
无论如何不能用更少的内存绘制图像?我正在使用A4尺寸的BMP进行打印,只能使用文字。大多数时候它只是黑白,而有时我也需要使用蓝色,粉红色和灰色。
答案 0 :(得分:0)
对于你问题中陈述的事实,有一些非常可疑的事情。除非我被误认为,BufferedImage
每像素使用1个字节,因此3500 x 2480
个字节...大约10M字节。但是你声称已经将堆大小设置为3Gbytes。
您实际使用了哪些JVM选项?