После прочтения вашего вопроса я не могу решить:
a.Вы пытаетесь выполнить мягкую операцию или
b.вы создаете приложение типа палитры цветов и хотите предоставить пользователям имена определенных цветов (например, pantone или NCS или что-то подобное) при отображении их приближенных значений sRGB или
c,совсем другое.
Какое пространство CMYK вас интересует?Если вы выполняете опцию (а) - мягкое корректирование - вы, вероятно, можете подогнать кривые к LUT в профиле CMYK и использовать их для определения преобразования с помощью «ярлыка», которое затем можно запустить в не-ICC-знайте время выполнения javascript, в котором вы работаете. Большинство профилей CMYK выполняют свое преобразование с LUT, и многие используют значения ICC4 NamedColor2 (которые вы можете знать как значение в тегах 'ncl2' ICC).
Если это так, я могу указать вам на некоторые ресурсы о том, как это сделать - я делаю это сам, используя SciPy в платформе приложения для анализа изображений python django для управления цветом, над которой я работаю.
Если вы выполняете опцию (b) и вам нужны имена цветов, вы можете извлечь нужные имена из вашего профиля CMYK (наиболее вероятные значения NamedColor2) и построить таблицу поиска, которую вы затем сможетесериализовать его в JSON, чтобы вы могли загрузить его в свое приложение.Если ваше приложение нуждается в некотором знании пространства дисплея, вы, вероятно, можете попросить пользователя «откалибровать» ваше приложение для своего дисплея - задать им несколько вопросов, которые позволят вам рассчитать смещение белой точки (и, возможно, RGB XYZtristimulii), а затем, возможно, создаст быстрое преобразование (которое может быть таким же простым, как одно преобразование хроматической адаптации, я полагаю), которое вы затем применяете к цветовым значениям, которые хотите «управлять цветом», прежде чем отобразить их.делать преобразования без системы CMS, математика Брюса Линдблума - хорошее место для начала:
http://www.brucelindbloom.com/
, если это в) Мне очень любопытно, что это такое.
что-нибудь из этого помогает?Я могу разработать и / или предоставить пример кода и т. Д., Если вы дополняете свой вопрос (я работаю в аналогичной проблемной области, поэтому мы оба могли бы победить в этом).