IllegalArgumentException: parametr koloru poza oczekiwanym zakresem: czerwony zielony niebieski
kiedy testowałem mój kod za pomocą JUnit, wystąpił następujący błąd:
java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue
Szczerze mówiąc, nie wiem dlaczego. Mój kod nie jest zbyt długi, więc chciałbym opublikować go dla lepszej pomocy.
BufferedImage img = ImageIO.read(f);
for (int w = 0; w < img.getWidth(); w++) {
for (int h = 0; h < img.getHeight(); h++) {
Color color = new Color(img.getRGB(w, h));
float greyscale = ((0.299f * color.getRed()) + (0.587f
* color.getGreen()) + (0.144f * color.getBlue()));
Color grey = new Color(greyscale, greyscale, greyscale);
img.setRGB(w, h, grey.getRGB());
Kiedy uruchamiam test JUnit, zaćmienie oznacza linię
Color grey = new Color(greyscale, greyscale, greyscale);
Przypuszczam, że problem może polegać na tym, że pracuję z liczbami zmiennymi i jak widać, ponownie obliczam czerwoną, zieloną i niebieską zawartość obrazu.
Czy ktoś może mi pomóc rozwiązać ten problem?