我需要一种方法来确定此 BufferedImage
的类型在java中(Binary, Gray, 24 bit color, 8 bit color)
?
类似于BufferedImage.getType()
方法,返回一个确定该值的整数,但我需要一种方法来处理它。如果有一种算法可以检测到它,就像颜色是灰色的,如果红色=绿色=蓝色等等。如果您告诉我,我将不胜感激
问候
最佳答案
按照您的建议,使用 BufferedImage.getType()
(您可以在 API doc 中找到 int
返回值的含义)。
或者,使用BufferedImage.getColorModel()
获取更多信息,例如 ColorSpace
( ColorModel.getColorSpace()
) 确定色彩空间类型,如 RGB、CMYK 或灰色,或特殊色彩空间,如 sRGB、AdobeRGB、PhotoYCC、IEXYZ、Lab 等。
如果您需要确定使用 RGB 颜色模型的 24/32 位深度的图像是否真的都是灰色,那么您就不走运了,而必须循环遍历所有像素值并查看是否 R == G == B(也许阈值很小)。
关于java - 如何在java中确定bufferedimage颜色类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959043/