Я пытаюсь автоматически изменить цвет для набора значков. Каждый значок имеет белый заполненный слой, а другая часть прозрачна. Вот пример: (в этом случае он зеленый, чтобы сделать его видимым)
Я попытался сделать следующее:
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
Итак, мой результат - только цветной квадрат. Как я могу добиться изменения цвета непрозрачных частей? И почему все пиксели имеют одинаковое значение альфа? Я предполагаю, что моя основная проблема: что альфа-значение не читается правильно.