如何在java中查找tif图像是彩色图像还是黑白图像

如何在java中查找tif图像是彩色图像还是黑白图像,java,tiff,Java,Tiff,我正在尝试检查tiff图像是否为彩色。我到处都在寻找解决办法,但似乎没有一个办法奏效。下面是我正在使用的代码,它给了我一个空指针异常。BuffereImage对象似乎无法读取tiff图像。找到tiff颜色的任何其他方法也可以 BufferedImage image = ImageIO.read(new File("C:\\desktop_backup\\2015-10-26\\PDF\\TIFF\\150_TIF_COL.tif")); Raster ras = image.getRaster(

我正在尝试检查tiff图像是否为彩色。我到处都在寻找解决办法,但似乎没有一个办法奏效。下面是我正在使用的代码,它给了我一个空指针异常。BuffereImage对象似乎无法读取tiff图像。找到tiff颜色的任何其他方法也可以

BufferedImage image = ImageIO.read(new File("C:\\desktop_backup\\2015-10-26\\PDF\\TIFF\\150_TIF_COL.tif"));
Raster ras = image.getRaster();
int elem = ras.getNumDataElements();
System.out.println("Number of Elems: " + elem);

您正在使用Java高级图像API吗?看起来使用TIF格式可能需要这样做。请看:您能否给出准确的错误,因为它可能会有所帮助这里有一个用于读取TIFF瓷砖的方法(免责声明,我是作者)。PS:如果您不需要检查所有像素值,只需依赖颜色模型(即元素数,如上所述),则不需要解码图像。查看TIFF元数据,或者从TIFF
ImageReader
实例获取
ImageTypeSpecifier
。这应该比完全解码图像快得多。嗨,我试过JAI和@haraldK,但不知何故,由于参考问题,我无法让它对我起作用。您能给我一些我可以导入的JAR的链接和代码吗?或者给我一些我可以找到如何检查tif颜色的文档的链接吗