@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();
}