2009-02-10 132 views

回答

3

我不知道這樣做的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的圖像,它不應該是一個問題。