Farbraum-Umwandlung von sRGB nach Lab

Nasenbaer

Mitglied
Hallo,
ich versuche gerade herauszufinden wie man mit den java.awt.color.* Klassen eine Farbraum-Umwandlung von sRGB nach Lab vornimmt.
Bisher hatte ich das per Hand umgerechnet aber irgendwie soll das auch mit java.awt.color.ColorSpace und/oder java.awt.color.ICC_Profile gehen. Leider weiß ich nicht wie und ich finde auch nur Beispiele für RGB->Graustufen Umwandlungen. Diese lassen sich leider aber nicht 1:1 nach RGB->Lab umschreiben.

Ich hoffe ihr könnt mir da weiterhelfen, denn selbst im Sun Java Forum hat niemand ne Antwort auf eine ähnliche Frage bekommen. :/
 
Ohne so etwas jemals ausprobiert zu haben sollte laut API

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/color/ColorSpace.html

folgendes code snipplet helfen:

Java:
import java.awt.color.ColorSpace;

public class ColorTransform {
  public static void main(String[] args) {
    // Die Definition des Lab Colorspace.
    ColorSpace labColorSpace = ColorSpace.getInstance(ColorSpace.TYPE_Lab);
    // Die Definition des sRGB Colorspace.
    ColorSpace rgbColorSpace = ColorSpace.getInstance(ColorSpace.CS_sRGB);

    // rot in Lab Colorspace Form als float array.
    float[] labRed = new float[]{ 100.0, 100.0, 0.0 };

    // Ein Color Objekt mit Lab Colorspace.
    Color labRedObj = new Color(labColorSpace, labRed, 1.0);

    // das sRGB Gegenstueck zur Lab Colorspace rot.
    float[] srgbRed = labRedObj.getColorComponents(rgbColorSpace, null);

    // Ein Color Objekt mit sRGB Colorspace.
    Color srgbRedObj = new Color(rgbColorSpace, rgbRed, 1.0);
  }
}
 
Dachte ich mir ja auch so aber deine Zeile 6 wird eine IllegalArgumentException werfen mit der Begründung "Unknown color space". Es scheinen nur die Typen, die mit CS_ beginnenn valide Argumente zu sein.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück