Почему условие во втором условии if ложно? - PullRequest
0 голосов
/ 25 апреля 2020

Я пишу простую программу изменения цвета, которая меняет два указанных c цвета с растрового изображения на два других цвета, выбранных пользователем с помощью ползунков RGB. Я пытаюсь использовать PixelWriter, чтобы сделать значение RGB каждого пикселя WritableImage, что выбрал пользователь. Проблема в том, что он окрашивает все правильные пиксели для первого цвета, но не окрашивает пиксели для второго цвета. Ничего внутри второго, если оператор выводится. То же самое верно для операторов if-else.

Вот скриншот того, что происходит

for (int readY = 0; readY < ogFish.getHeight(); readY++) {
    for (int readX = 0; readX < ogFish.getWidth(); readX++) {
        Color oldPixelColor = reader.getColor(readX, readY);
        double FR = oldPixelColor.getRed();
        double FG = oldPixelColor.getGreen();
        double FB = oldPixelColor.getBlue();
        double BR = oldPixelColor.getRed();
        double BG = oldPixelColor.getGreen();
        double BB = oldPixelColor.getBlue();
        if(FR == ogFinColor.getRed() && 
                FG == ogFinColor.getGreen() && 
                FB == ogFinColor.getBlue()) {
            Color newFinColor = Color.rgb((int) finsRedSlider.getValue(), 
                (int) finsGreenSlider.getValue(), 
                (int) finsBlueSlider.getValue());
            System.out.println("fin");
            writer.setColor(readX, readY, newFinColor);
        }
        if(BR == ogBodyColor.getRed() && 
                BG == ogBodyColor.getGreen() && 
                BB == ogBodyColor.getBlue()) {
            Color newBodyColor = Color.rgb((int) bodyRedSlider.getValue(), 
                    (int) bodyGreenSlider.getValue(), 
                    (int) bodyBlueSlider.getValue());
            writer.setColor(readX, readY, newBodyColor);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...