Как определить, является ли изображение (java.awt.Image) черно-белым, без цвета? - PullRequest
4 голосов
/ 13 сентября 2010

Я пытаюсь определить, является ли изображение простым черно-белым изображением или оно имеет цвет (с использованием Java).Если у него есть цвет, мне нужно отобразить предупреждение для пользователя, что цвет будет потерян.

1 Ответ

8 голосов
/ 13 сентября 2010

Класс 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 для каждого пикселя, то это в серой шкале.

Это первое, что приходит на ум. Я не уверен, будет ли установлен какой-либо флаг серой шкалы при чтении изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...