Bir simge grubunun rengini otomatik olarak değiştirmeye çalışıyorum. Her simgenin beyaz dolu bir tabakası ve diğer kısmı saydamdır.Png'nin saydam olmayan parçalarının rengini değiştirme Java'da
aşağıdaki yapmaya çalıştım (sadece görünür hale getirmek için bu yeşil bu durumda):
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;
}
Ben sorun her pikselde olmasıdır İşte bir örnek Ben de aynı değere sahibiz:
32|18 color: java.awt.Color[r=255,g=255,b=255]alpha: 255
Sonuçta yalnızca renkli bir kare var. Yalnızca saydam olmayan parçaların rengini değiştirmek için nasıl yapabilirim? Ve neden, tüm piksellerin aynı alfa değerine sahip olması neden? Sanırım bu benim asıl sorunum: Alfa değerinin doğru okunmadığı.
Teşekkür mavi tüm pixles değiştirir – 4ndro1d