# Wie die Farbtiefe eines Image ändern?



## lui7172 (27. März 2008)

Hallo,

ich lade Bilder (mit ImageIO.read()) unterschiedlicher Farbtiefen und muss diese auf 8 oder 24 Bit Farbtiefe konvertieren. Wie macht man das in Java?

Danke
lui


----------



## zeja (27. März 2008)

Ich nehme an mit der ColorConvertOp.


----------



## lui7172 (27. März 2008)

Hi zeja,

über ColorConvertOpt bin ich zwischenzeitlich auch gestolpert. Aber Farbräume/-modelle sind nicht gerade mein Heimatgebiet. Mir ist ganz nicht klar welchen ColorSpace ich verwenden muss und welche RenderingHints ggf. sinnvoll sind. Oder ist es einfacher/sinvoller die Bilder zu laden und den Inahlt in ein Bild mit entsprechendem Farbraum zu übertagen? 
Für 24-bit müsste es wohl TYPE_3BYTE_BGR sein. Für 8-bit TYPE_BYTE_INDEXED. Wie wird die Tabelle erstellt? Muss ich mich darum kümmern, oder berechnet java2d das perfekt für mich?
Ich glaube hier kann man viel falsch machen und lange daran "rumspielen". Deshalb würde ich mich über ein wenig Hilfe sehr freuen. Wahrscheinlich wurde das Problem ja schon x-mal gelöst!?

Danke
lui


----------



## zeja (28. März 2008)

Ich kenn mich damit auch nicht weiter aus, aber dort steht zumindest wie es geht wenn man mal den richtigen Colorspace gefunden hat. http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Supplements/Chapter11/rescaleConvert.html

24bit sollte sRGB sein und 8 Bit halt CS_GRAY.


----------

