19

アイコンのセットの色を自動的に変更しようとしています。すべてのアイコンには白で塗りつぶされたレイヤーがあり、他の部分は透明です。以下に例を示します: (この場合は、見えるようにするためだけに緑色になっています)

アイコン検索

私は次のことをしようとしました:

private static BufferedImage colorImage(BufferedImage image) {
        int width = image.getWidth();
        int height = image.getHeight();

        for (int xx = 0; xx < width; xx++) {
            for (int yy = 0; yy < height; yy++) {
                Color originalColor = new Color(image.getRGB(xx, yy));
                System.out.println(xx + "|" + yy + " color: " + originalColor.toString() + "alpha: "
                        + originalColor.getAlpha());
                if (originalColor.equals(Color.WHITE) && originalColor.getAlpha() == 255) {
                    image.setRGB(xx, yy, Color.BLUE.getRGB());
                }
            }
        }
        return image;
    }

私が抱えている問題は、取得するすべてのピクセルが同じ値を持つことです:

32|18 color: java.awt.Color[r=255,g=255,b=255]alpha: 255

したがって、私の結果は単なる色付きの正方形です。透明でない部分だけ色を変えるにはどうすればいいですか?そして、すべてのピクセルが同じアルファ値を持っているのはなぜですか? それが私の主な問題だと思います。アルファ値が正しく読み取られないことです。

4

4 に答える 4