Я не знаю метода 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 это не должно быть проблемой.