Tôi đang cố gắng tự động thay đổi màu cho một tập hợp các biểu tượng. Mỗi biểu tượng có một lớp đầy màu trắng và một phần khác là trong suốt. Dưới đây là một ví dụ: (trong trường hợp này đó là màu xanh lá cây, chỉ để làm cho nó có thể nhìn thấy)Thay đổi màu của các phần không trong suốt của png trong Java
Tôi cố gắng để làm như sau:
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;
}
Tôi có vấn đề là mỗi điểm ảnh Tôi nhận được có cùng giá trị:
32|18 color: java.awt.Color[r=255,g=255,b=255]alpha: 255
Vì vậy, kết quả của tôi chỉ là một hình vuông màu. Làm cách nào để tôi có thể thay đổi màu của các phần không trong suốt? Và tại sao, tất cả các pixel đều có cùng giá trị alpha? Tôi đoán đó là vấn đề chính của tôi: Giá trị alpha không được đọc chính xác.
Cám ơn :) này – 4ndro1d