JAIを使用して複数ページのTIFF画像を読み込む
File file = workArea[0];
SeekableStream s = new FileSeekableStream(file);
TIFFDecodeParam param = null;
ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param);
//first page
RenderedImage op1 =
new NullOpImage(dec.decodeAsRenderedImage(0),
null,
OpImage.OP_IO_BOUND,
null);
BufferedImage pg1 = new BufferedImage(op1.getWidth(), op1.getHeight(),
BufferedImage.TYPE_INT_RGB);
pg1.getGraphics().drawImage((Image) op1, 0, 0, null);
ただし、最後の行で、次のランタイムエラーが発生します。
Exception in thread "main" java.lang.ClassCastException:
javax.media.jai.MullOpImage cannot be cast to java.awt.Image
BufferedImageを設定しようとした後、RenderedImageをクリアするので、これを行う別の方法がある場合、RenderedImageを正確に「必要」とはしません。
私が試みた:
pg1.setData(op1.getData());
そしてそれはArrayIndexOutOfBoundsExceptionを与えます。pg1の幅と高さがop1によって設定されるのとまったく同じ理由はわかりませんが、おそらく非常に正当な理由があります。