Hallo!
Habe ein RGB-Bild in ein ein 3D-Array aus Integern konvertiert. Das Anzeigen der der einzelnen Kanäle R-G-B klappt ohne Probleme.
Nun soll ich aber von RGB in CMYK umwandeln und wiederum die einzelnen Kanäle anzeigen. Hier scheitere ich nun an einem CMYK-ColorSpace-Objekt...
Die ColorSpace-Erzeugung wirft eine Exception: unknown color space. Habe hier im Forum schon gelesen, dass dies daran liegt, dass getInstance() Werte >1000 erwartet.
Wie kann ich nun einen CMYK-Farbraum erzeugen, um den dem Color-Konstruktor übergeben zu können? Muss ich den Farbraum selbst implementieren?
Danke schonmal!
Habe ein RGB-Bild in ein ein 3D-Array aus Integern konvertiert. Das Anzeigen der der einzelnen Kanäle R-G-B klappt ohne Probleme.
Nun soll ich aber von RGB in CMYK umwandeln und wiederum die einzelnen Kanäle anzeigen. Hier scheitere ich nun an einem CMYK-ColorSpace-Objekt...
Java:
public Color getCMYKColor(int channel, int color) {
ColorSpace cs = ColorSpace.getInstance(ColorSpace.TYPE_CMYK);
if (channel == 0) {
float cmyk = (float) (255 - color);
float[] c = {cmyk, 0.0f, 0.0f, 0.0f};
return new Color(cs, c, 1.0f);
} else if (channel == 1) {
float cmyk = (float) (255 - color);
float[] c = {0.0f, cmyk, 0.0f, 0.0f};
return new Color(cs, c, 1.0f);
} else if (channel == 2) {
float cmyk = (float) (255 - color);
float[] c = {0.0f, 0.0f, cmyk, 0.0f};
return new Color(cs, c, 1.0f);
} else {
return null;
}
}
Die ColorSpace-Erzeugung wirft eine Exception: unknown color space. Habe hier im Forum schon gelesen, dass dies daran liegt, dass getInstance() Werte >1000 erwartet.
Wie kann ich nun einen CMYK-Farbraum erzeugen, um den dem Color-Konstruktor übergeben zu können? Muss ich den Farbraum selbst implementieren?
Danke schonmal!