如何确定图像(java.awt.Image)是否为B&W,没有颜色?

Luk*_*kas 4 java colors image-processing

我正在尝试确定图像是简单的黑白图像,还是有颜色(使用Java).如果它有颜色,我需要向用户显示一条警告消息,颜色将会丢失.

Tom*_*ack 8

所述的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,那么它是灰度级的.

这是我想到的第一件事.我不确定在图像中读取时是否会设置某种灰度标记.