如何在java中确定BuffereImage颜色类型

如何在java中确定BuffereImage颜色类型,java,bufferedimage,Java,Bufferedimage,我需要一种方法来确定java(二进制、灰色、24位颜色、8位颜色)中此缓冲区图像的类型 它类似于BufferedImage.getType()method,它返回一个确定该值的整数,但我需要一种方法来处理它。如果有一个算法可以检测到它,比如颜色是灰色的,如果红色=绿色=蓝色等等。如果你能告诉我,我将不胜感激 正如您所建议的,使用buffereImage.getType()(您可以在中找到int返回值的含义) 或者,使用buffereImage.getColorModel()获取更多信息,如Col

我需要一种方法来确定java
(二进制、灰色、24位颜色、8位颜色)中此
缓冲区图像的类型

它类似于
BufferedImage.getType()
method,它返回一个确定该值的整数,但我需要一种方法来处理它。如果有一个算法可以检测到它,比如颜色是灰色的,如果红色=绿色=蓝色等等。如果你能告诉我,我将不胜感激


正如您所建议的,使用
buffereImage.getType()
(您可以在中找到
int
返回值的含义)

或者,使用
buffereImage.getColorModel()
获取更多信息,如
ColorSpace
ColorModel.getColorSpace()
)确定颜色空间类型,如RGB、CMYK或灰色,或特殊颜色空间,如sRGB、AdobeRGB、PhotoYCC、IEXYZ、Lab等

如果您需要确定使用RGB颜色模型的24/32位深度的图像是否真的都是灰色的,那么您就不走运了,必须循环遍历所有像素值,看看R==G==B(可能有一个小阈值)