我正在使用24x24像素图标。我希望能够将此图标中的特定颜色更改为不同的颜色。例如,将白色区域变为红色。
答案 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。