我正在尝试确定一张图片是简单的黑白图片还是有颜色的图片(使用Java)。如果有颜色,我需要向用户显示一个警告信息,说明颜色将会丢失。
我正在尝试确定一张图片是简单的黑白图片还是有颜色的图片(使用Java)。如果有颜色,我需要向用户显示一个警告信息,说明颜色将会丢失。
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值是否都相等。如果每个像素的r == g == b,则它是灰度图像。
这是我能想到的第一件事。我不确定在读入图像时是否会设置某种灰度标志。