因为需要读取bmp,jpeg,tiff图片,所以使用了JAI这个包,但是当读取大的图片,
如5000*4000大小为9兆的图片时却报内存溢出了java.lang.OutOfMemoryError
读取代码如下
RenderedOp imgOp;
ParameterBlockJAI pb;
pb = new ParameterBlockJAI("fileload");
pb.setParameter("filename", fname);
imgOp = JAI.create("fileload", pb);
tempImage = imgOp.getAsBufferedImage();
imagePanel.setImage(tempImage);
请问有什么办法可以解决吗?最好能有代码说明,谢谢!

解决方案 »

  1.   

    增加虚拟机内存 
    启动时加参数 -Xmx256M //调整未256M
      

  2.   

    启动程序是加一个虚拟机参数 -Xmx512m 用来设置Java虚拟机可使用的内存。
      

  3.   

    加参数是可以,不过如果再大的图呢,是不是要加内存啊?
    有没有部分部分读取的方法,而且要支持bmp,jpeg,tiff图片的啊?
      

  4.   

    部分读取可能要受具体图像文件格式的限制,比如JPEG2000好像可以,我不太清楚。
    你也可以研究研究JAI,或者看看有没有什么方法。
      

  5.   

    以前我也是用部分读取,不过只支持jpg,bmp就不行了,所以用了jai这个包,但用了这个就出现上面的问题了,郁闷啊!
      

  6.   

    java处理图像本来就是有缺陷的,几兆的图片会增加内存上百兆