Попробуй это :

ользую 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

Я очищаю RenderedImage после попытки установить BufferedImage, поэтому мне точно не «нужен» RenderedImage, если есть другой способ сделать это.

Я попытался:

 pg1.setData(op1.getData());

и это дает ArrayIndexOutOfBoundsException. Я не уверен, почему именно так pg1 ширина и высота устанавливаются op1, но, вероятно, есть очень веская причина.

Ответы на вопрос(5)

Ваш ответ на вопрос