JavaのImageIOAPIについて少し助けが必要です。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;
}
}