Я пишу простую программу изменения цвета, которая меняет два указанных 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);
}
}
}