@Override public Iterator<ImageTypeSpecifier> getImageTypes(int frameIndex) throws IOException { readMetadata(); checkIndex(frameIndex); ImageTypeSpecifier imageType; if (pmi.isMonochrome()) imageType = createImageType(8, DataBuffer.TYPE_BYTE, false); else if (decompressor == null) imageType = createImageType(bitsStored, dataType, banded); else if (rle) imageType = createImageType(bitsStored, dataType, true); else { openiis(); try { decompressor.setInput(iisOfFrame(0)); return decompressor.getImageTypes(0); } finally { closeiis(); } } return Collections.singletonList(imageType).iterator(); }
@Override public ImageTypeSpecifier getRawImageType(int frameIndex) throws IOException { readMetadata(); checkIndex(frameIndex); if (decompressor == null) return createImageType(bitsStored, dataType, banded); if (rle) return createImageType(bitsStored, dataType, true); openiis(); try { decompressor.setInput(iisOfFrame(0)); return decompressor.getRawImageType(0); } finally { closeiis(); } }
openiis(); try { ImageInputStream iisOfFrame = iisOfFrame(frameIndex);
try { if (decompressor != null) { decompressor.setInput(iisOfFrame(frameIndex));
offset = pixelData.offset()+pixelData.longLength(); } else { SegmentedInputImageStream siis = (SegmentedInputImageStream) iisOfFrame(-1); offset = siis.getOffsetPostPixelData();