如何检测图像是否为灰度

时间:2014-09-18 06:21:09

标签: java

here 中有一个已接受的答案。它说如果值R == G == B那么它就是灰度图像。 我试图比较第一个像素,它做了伎俩。但是,我认为彩色图像有可能为某些像素提供相同的RGB值,特别是在第一个像素中。

我不想做for-loop来检查所有像素,它会花费更多次。 那么,有没有其他方法来检查图像是否为灰度? 或者,是否有getter方法可用于从其元数据中获取此信息?

1 个答案:

答案 0 :(得分:0)

我不确定但你试过了吗?

BufferedImage image = ImageIo.read(new File("imageName"));
ColorSpace colorSpace = image.getColorModel().getColorSpace();
int type = colorSpace.getType();
if (type = ColorSpace.CS_GRAY ){
    //...
}

请参阅http://docs.oracle.com/javase/7/docs/api/java/awt/color/ColorSpace.html了解色彩空间