アイコンの色を自動的に変更しようとしています。 すべてのアイコンには白い塗りつぶしのレイヤーがあり、他の部分は透明です。ここで は例です。(この場合には、それはちょうどそれが見えるように、グリーン)Javaのpngの不透明部分の色を変更します
私は、次の操作を実行しようとした:
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
私の結果はちょうど色のついた四角です。 透明でない部分の色のみを変更するにはどうすればよいですか?なぜ、すべてのピクセルが同じアルファ値を持っているのですか?私はそれが私の主な問題だと思う:アルファ値が正しく読み取られていないこと。
感謝をすべてpixlesを変更する:) – 4ndro1d