Изменить определенный цвет в ImageIcon - PullRequest
2 голосов
/ 10 февраля 2009

Я работаю с иконками 24x24 пикселей. И я хотел бы иметь возможность изменить определенный цвет в этом значке на другой цвет. Например, поверните белые области на красные.

Ответы [ 2 ]

3 голосов
/ 10 февраля 2009

Я не знаю метода API, который это делает. И по умолчанию Images недоступны для записи. Однако, если у вас есть BufferedImage, вы можете сделать это так:

public void changeColor(BufferedImage img, Color old, Color new) {
    final int oldRGB = old.getRGB();
    final int newRGB = new.getRGB();
    for (int x = 0; x < img.getWidth(); x++) {
        for (int y = 0; y < img.getHeight(); y++) {
            if (img.getRGB(x, y) == oldRGB)
                img.setRGB(x, y, newRGB);
        }
    }
}

Это не самый эффективный способ сделать это (можно извлекать данные RGB в массив вместо одного пикселя за раз), но для изображений 24x24 это не должно быть проблемой.

1 голос
/ 10 февраля 2009

Вы можете сделать это с BufferedImage . Взгляните на документацию по Java Image I / O .

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