Ich hänge gerade an einer Stelle, an der ich zwar eine Lösung habe, aber sie mir nicht gut gefällt:
Für meine Aufgabe muss ich zigtausende von Farben aus einem Farbraum (ein geräteabhängiges RGB-Profil) in andere Farbräume (LinearRGB, CIEXYZ D50 und CIELAB D65) konvertieren. Das Ganze möglichst richtig, möglichst genau und möglichst schnell.
Das geht grundsätzlich mit -colorUsingColorSpace: (NSColor), ist aber elend ineffizient, weil jedes Mal neue NSColor-Instanzen angelegt werden müssen. Ein anderer Weg geht direkt über die ColorSync-API, in der aber mittlerweile fast alles deprecated ist und die mir den Eindruck eines ungepflegten Wracks macht. Momentan rechne ich die Werte selbst um, was aber auch nicht der Sinn der Sache sein kann. Dummerweise kann ich nicht einfach alle Farben in eine Bitmap schreiben und dann als Ganzes konvertieren, weil die Werte nacheinander häppchenweise konvertiert werden müssen.
Hat jemand mal etwas ähnliches gemacht? Benutzt jemand von Euch noch die ColorSync-API direkt? Oder gibt es einen schlaueren Weg?
Für meine Aufgabe muss ich zigtausende von Farben aus einem Farbraum (ein geräteabhängiges RGB-Profil) in andere Farbräume (LinearRGB, CIEXYZ D50 und CIELAB D65) konvertieren. Das Ganze möglichst richtig, möglichst genau und möglichst schnell.
Das geht grundsätzlich mit -colorUsingColorSpace: (NSColor), ist aber elend ineffizient, weil jedes Mal neue NSColor-Instanzen angelegt werden müssen. Ein anderer Weg geht direkt über die ColorSync-API, in der aber mittlerweile fast alles deprecated ist und die mir den Eindruck eines ungepflegten Wracks macht. Momentan rechne ich die Werte selbst um, was aber auch nicht der Sinn der Sache sein kann. Dummerweise kann ich nicht einfach alle Farben in eine Bitmap schreiben und dann als Ganzes konvertieren, weil die Werte nacheinander häppchenweise konvertiert werden müssen.
Hat jemand mal etwas ähnliches gemacht? Benutzt jemand von Euch noch die ColorSync-API direkt? Oder gibt es einen schlaueren Weg?
Multigrad - 360°-Produktfotografie für den Mac