java - 更改 ImageIcon 中的特定颜色

标签 java

我正在使用 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/

相关文章:

java - Maven、Git、Android 和 Maven 发布插件

java - 检测文本字段溢出

java - 实现重复性作业,每秒重复次数不超过一次

Java morphia - 按列表字段中的值查询

java - 使用 Graphics2D 旋转

java - 在 Java 中扩展 T 和 SomeInterface<T>

java - Android-从customListview获取图像并在imageview中显示相同的图像,而不使用数据库

java - 如何让代码比较数组中的 2 个值?

java - 使用 UDP 的服务器-客户端

java - 当前一个 SwingWorker 完成后,使用另一个参数值重新调用 SwingWorker