更改ImageIcon中的特定颜色

时间:2009-02-10 14:37:57

标签: java

我正在使用24x24像素图标。我希望能够将此图标中的特定颜色更改为不同的颜色。例如,将白色区域变为红色。

2 个答案:

答案 0 :(得分: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图像,这应该不是问题。

答案 1 :(得分:1)

您可以使用BufferedImage执行此操作。看一下Java Image I/O documentation