Да,
Вы можете использовать imageReader.getRawImageType(imageNo)
. Этот метод будет работать большую часть времени. К сожалению, в некоторых случаях он вернет null
, что наиболее заметно для изображений JPEG, закодированных как YCbCr (вместо RGB), и это, вероятно, самый распространенный случай для JPEG ...
Другой способ получить такую же информацию использовать изображения мета объект данных, и посмотреть на стандартный формат метаданных, чтобы получить эту информацию:
IIOMetadata metadata = imageReader.getImageMetadata(imageNo);
if (metadata.isStandardFormatSupported()) { // true for all bundled formats
IIOMetadataNode root = (IIOMetadataNode) imageMetadata.getAsTree("javax_imageio_1.0");
// Get either (as pseudo-xpath):
// /Chroma/NumChannels[@value], which is just number of channels, 3 for RGB
// /Data/BitsPerSample[@value], bits per sample, typically 8,8,8 for 24 bit RGB
}
Вы можете посмотреть на standard format documentation и IIOMetadataNode
API doc для получения дополнительной информации.