我需要一些关于 Java 的 ImageIO API 的帮助。我似乎迷失在 ComponentColorModel 类中。我需要逐像素检查 *.png 文件以检测它是灰度图像还是彩色图像。但是,我不知道如何获得每个像素的 R、G、B 值。任何人都可以帮忙吗?
以下代码在“m.getComponents(i, components, 0);”行上时抛出 IllegalArgumentException
ComponentColorModel m = (ComponentColorModel) imageTypeSpecifier.getColorModel();
int pixels = reader.getWidth(0) * reader.getHeight(0);
isGray = true;
int[] components = new int[4];
for (int i = 0; i < pixels; i++) {
m.getComponents(i, components, 0);
if (!(components[0] != components[1] || components[1] != components[2])) {
isGray = false;
break;
}
}