【发布时间】:2011-04-11 20:14:50
【问题描述】:
我正在尝试确定图像是否是简单的黑白图像,或者它是否有颜色(使用 Java)。如果它有颜色,我需要向用户显示颜色将丢失的警告消息。
【问题讨论】:
标签: java image-processing colors
我正在尝试确定图像是否是简单的黑白图像,或者它是否有颜色(使用 Java)。如果它有颜色,我需要向用户显示颜色将丢失的警告消息。
【问题讨论】:
标签: java image-processing colors
BufferedImage 类有一个方法int getRGB(int x, int y),它返回一个十六进制整数,表示 (x, y) 处像素的颜色(以及另一个返回像素矩阵的方法)。从中可以得到 r、g 和 b 值,如下所示:
int r = (0x00ff0000 & rgb) >> 16; int g = (0x0000ff00 & rgb) >> 8; int b = (0x000000ff & rgb);
然后检查它们对于图像中的每个像素是否都相等。如果每个像素的 r == g == b,那么它是灰度的。
这是首先想到的。我不确定在读取图像时是否会设置某种灰度标志。
【讨论】: