我需要一种方法来确定java BufferedImage
中此(Binary, Gray, 24 bit color, 8 bit color)
的类型?
类似于BufferedImage.getType()
方法,它返回一个确定该值的整数,但我需要一种方法来处理它。如果有一个算法可以检测到它,就像颜色是灰色的,如果红色=绿色=蓝色等等。如果你告诉我,我会很感激
所有问候
答案 0 :(得分:5)
根据您的建议,使用BufferedImage.getType()
(您可以在API doc中找到int
返回值的含义。
或者,使用BufferedImage.getColorModel()
获取更多信息,例如ColorSpace
(ColorModel.getColorSpace()
)以确定颜色空间类型,如RGB,CMYK或灰色,或特殊颜色空间,如sRGB, AdobeRGB,PhotoYCC,IEXYZ,Lab等。
如果你需要弄清楚你的图像是否是24/32位深度的RGB颜色模型真的是灰色的,那么你运气不好,而是必须循环所有的像素值,看看R == G == B(可能是一个很小的门槛)。