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

标签 java bufferedimage

我需要一种方法来确定此 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/

相关文章:

java - 优先级队列不按优先级插入东西

java - 调试时查看图像的 Eclipse 插件

java - 在不损失质量的情况下调整图像大小

java - 如何将图像数据复制到 BufferedImage 的子类中?

java - BufferedImage 到字节 : how are the channels mapped?

java - 如何提高 PDF 渲染器中图像的分辨率?

java - iText - 读取复选框值

java如何找到二维数组中每一行的最大值

Java:在对象数组上设置变量

Java DatagramSocket超时但实际上已收到