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

时间:2014-04-09 09:59:00

标签: java bufferedimage

我需要一种方法来确定java BufferedImage中此(Binary, Gray, 24 bit color, 8 bit color)的类型?

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

所有问候

1 个答案:

答案 0 :(得分:5)

根据您的建议,使用BufferedImage.getType()(您可以在API doc中找到int返回值的含义。

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

如果你需要弄清楚你的图像是否是24/32位深度的RGB颜色模型真的是灰色的,那么你运气不好,而是必须循环所有的像素值,看看R == G == B(可能是一个很小的门槛)。