特定のイメージで、JAI を使用すると OutOfMemory 例外が発生します。JAI が巨大な byte[] を割り当てようとしているようです。これは、おそらく画像のエラーが原因です。回避策はありますか?そうでない場合、事前にエラーを検出する方法はありますか? 次に例を示します。
URL bad = new URL("http://static4.businessinsider.com/image/505c5461ecad047a3500002b-772-598/share-of-income-to-labor.png");
RenderedOp op = JAI.create("stream", SeekableStream.wrapInputStream(url, true));
op.createInstance();
原因: java.lang.OutOfMemoryError: Java heap space at com.sun.media.jai.codecimpl.PNGImage.readChunk(PNGImageDecoder.java:554) at com.sun.media.jai.codecimpl.PNGImage.(PNGImageDecoder.java :489) com.sun.media.jai.codecimpl.PNGImageDecoder.decodeAsRenderedImage(PNGImageDecoder.java:81) で com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:120) で com.sun. media.jai.opimage.PNGRIF.create(PNGRIF.java:56) ... 20 以上