我正在嘗試自動更改一組圖標的顏色。 每個圖標都有一個白色填充圖層,另一個圖標是透明的。 下面是一個例子:(在這種情況下,它是綠色的,只是爲了使其可見)更改Java中不透明部分的顏色
我試着做到以下幾點:
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
所以我的結果只是一個彩色方塊。 如何才能實現只更改不透明部件的顏色?爲什麼所有像素都具有相同的alpha值?我想這是我的主要問題:沒有正確讀取alpha值。
感謝這個:) – 4ndro1d