Farben im png änderen - Transparenz erhalten

T

testcha

Ich lade eine png-Datei als ImageIcon in ein JLabel als setIcon(). Eine Farbe des png (i.d.R. weiß) ist als Transparent definiert, das wird in dem JLabel auch richtig dargestellt.

Ich will jetzt eine andere dunkle Farbe des ImageIcon z.B. new Color(0,0,0) in einen hellen Grauton z.B. new Color(244,244,244) konvertieren, nach der Umwandlung soll der Transparenz-Effekt für die Farbe weiß aber erhalten bleiben. Wie geht das?
 
Meinst so etwas wie die Klasse RGBImageFilter?

Dann würde dein Code etwas in der Art hier machen:

Java:
class MyGrayFilter extends RGBImageFilter {
   public MyGraySwapFilter() {
      canFilterIndexColorModel = true;
   }
   
   public int filterRGB(int x, int y, int rgb) {
      if (rgb == 0xff000000) return (0xfff4f4f4);
      return rgb;
   }
}
 
Zurück