我正在使用 24x24 像素图标。我希望能够将该图标中的特定颜色更改为其他颜色。例如将白色区域变成红色。
最佳答案
我不知道有 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 图像来说,这应该不是问题。
关于java - 更改 ImageIcon 中的特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/532586/