# Farbumwandlung



## Tapsi (26. Nov 2008)

Einmal muss ich noch nerven   

hat jemand ne idee wie ein color overlay in java funktioniert ??

Ich will dies 
	

	
	
		
		

		
			





 zbsp innerhalb des programms in das  
	

	
	
		
		

		
		
	


	




 umwandeln.


----------



## Marco13 (26. Nov 2008)

Im einfachsten Fall: In ein BufferedImage umwandeln, und dann alle Pixel mit getRGB(x,y) holen und mit setRGB(x,y,rgb) wie gewünscht setzen. Wenn du von "Color Overlays" redest, klingt das aber, als hättest du was größeres vor!? ???:L


----------



## Ark (26. Nov 2008)

Du könntest die Bilder ja genau so einfach speichern. Was in diesem Fall den Unterschied vom einen Bild zum anderen angeht, sieht es nach einer Änderung des Farbtons aus. Dazu bedient man sich gerne dem HSV-Modell. Entsprechende Methoden finden sich in der Klasse java.awt.Color.

Ark


----------



## Tapsi (26. Nov 2008)

Im meinen Spiel hat jede Armee eine eigene Farbe und die Einheiten müssen die richtigen Farben haben.

In Photoshop nennt sich der Kram Color Overlay mit dem ich den grünen erzeugt hatte


----------



## Marco13 (26. Nov 2008)

Hm. Wenn es nur um eine begrenzte (kleine) Anzahl Farben geht, könntest du die (wie Ark sagte) einzeln speichern. Sind ja nicht riesig 

Wenn du zur Laufzeit des Programmes beliebige (ggf. FREI vom Benutzer definierbare) Farben vergeben willst, gibt's mehrere mögliche Ansätze. Der einfachste, wie gesagt, alle "relevanten" Pixel im BufferedImage per Hand ersetzen. Ausgefeiltere Möglichkeiten wären z.B. eine BufferedImageOp (die aber "komplizierter" zu implementieren und anzuwenden ist), oder ...  ???:L das, was meiner Interpretation von einem "Color Overlay" am nächsten kommen würde: ein Bild zu zeichnen, und dann "halbdruchsichtig" mit einer anderen Farbe drüberzupinseln... aber ob das immer sinnvolle Ergebnisse liefert...?  ???:L


----------



## Tapsi (27. Nov 2008)

hättest du denn eine idee für Buffered Image OP ?

Hab die API dursucht und die Klasse scheint dafür ganz geeigenet zu sein ^^


----------



## Marco13 (27. Nov 2008)

Kannst z.B. mal http://www.java-forum.org/de/viewtopic.php?p=449730 nach einem Beispiel schauen, und Bescheid sagen, wenn's nicht klappt.


----------



## Tapsi (27. Nov 2008)

```
ICh habs nun raus wies gemacht wird , man nimmt FilteredImageOperation für Farbumwandlungen.
Hab es auch schon getestet und klappt super ^^
```


----------

