Изменение цветовых компонентов в Java

1

Есть ли способ изменить отдельные цветовые компоненты в Java-графическом программировании (кроме методов более яркого() и darker()? Например, если я создаю объект Color с цветовыми компонентами r, g, b, а затем хочу изменить один из них есть способ сделать это?

Color x = new Color(255,0,0);

Есть ли способ быстро изменить один из отдельных компонентов цвета?

  • 0
    я пробовал устанавливать переменные в качестве компонентов rgb и использовать getRed (), getBlue () и getGreen (), но Java дает мне ошибку
  • 0
    для цвета вы всегда будете создавать новый цветовой объект, потому что цвет всегда определяется конструктором. Это также, как методы brighter () и darker () работают внутри.
Теги:
rgb
graphics
colors
components

1 ответ

1
Лучший ответ

Вы не можете изменить существующий объект Color. Чтобы иметь другой, вам нужно создать другой объект Color, потому что объект всегда определяется значениями конструктора. Точно так же более темные() и яркие() встроены внутри. Взглянуть

public Color brighter() {
    int r = getRed();
    int g = getGreen();
    int b = getBlue();
    int alpha = getAlpha();

    /* From 2D group:
     * 1. black.brighter() should return grey
     * 2. applying brighter to blue will always return blue, brighter
     * 3. non pure color (non zero rgb) will eventually return white
     */
    int i = (int)(1.0/(1.0-FACTOR));
    if ( r == 0 && g == 0 && b == 0) {
        return new Color(i, i, i, alpha);
    }
    if ( r > 0 && r < i ) r = i;
    if ( g > 0 && g < i ) g = i;
    if ( b > 0 && b < i ) b = i;

    return new Color(Math.min((int)(r/FACTOR), 255),
                     Math.min((int)(g/FACTOR), 255),
                     Math.min((int)(b/FACTOR), 255),
                     alpha);
}

а также

public Color darker() {
    return new Color(Math.max((int)(getRed()  *FACTOR), 0),
                     Math.max((int)(getGreen()*FACTOR), 0),
                     Math.max((int)(getBlue() *FACTOR), 0),
                     getAlpha());
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню