После прочтения вашего вопроса, я не могу решить, если:
а. вы пытаетесь выполнить мягкую работу, или
b. вы создаете тип выбора цвета из приложения, и вы хотите предоставить пользователь с именами определенных цветов (например, от Pantone или NCS или сконвертировано) при отображении их SRGB значения приближения или
с. что-то еще.
Какое пространство CMYK у вас есть? Если вы выполняете опцию (a) - мягкую коррекцию - вы, вероятно, можете использовать кривые для LUT в профиле CMYK и использовать их для определения преобразования «shortcut», которое затем можно запустить в не-ICC- с которой вы работаете. Большинство профилей CMYK делают их преобразование с LUT, а многие используют значения ICC4 NamedColor2 (которые вы можете знать как значение в тегах ICC NCL2).
Если это так, я могу указать вам на некоторые ресурсы о том, как это сделать. Я сам делаю это с помощью SciPy в платформе приложений для обработки изображений для управления графикой python django, над которой я работаю.
Если вы делаете опцию (b), и вам нужны имена цветов, вы можете извлечь нужные вам имена из своего профиля CMYK (скорее всего, значения NamedColor2) и построить таблицу поиска, которую вы затем можете сериализовать JSON, чтобы вы могли загрузить его в своем приложении. Если ваше приложение должно обладать некоторыми знаниями о пространстве дисплея, возможно, вы можете настроить его для своего дисплея для своего приложения - отправьте им несколько вопросов, которые позволят вам вычислить смещение по белой точке (и, возможно, RGB XYZ tristimulii), а затем, возможно, создать быстрое преобразование (которое может быть таким же простым, как одно преобразование хроматической адаптации, которое я угадываю), которое вы затем применяете к значениям цвета, которые вы хотите «управлять цветом» перед их отображением.
Чтобы сделать преобразования без системы CMS, математике Брюса Lindbloom является хорошим местом для начала:
http://www.brucelindbloom.com/
, если это с) Я очень интересно, что это такое.
Полезно? Я могу разработать и/или предоставить пример кода, & c, если вы добавите свой вопрос (я делаю работу в подобной проблемной области, поэтому мы могли бы выиграть на этом).
Мое предложение состоит в том, что вы придерживаетесь решения Java, поскольку в этом нет ничего плохого. Я не понимаю, почему вы хотите его заменить, или почему вы предполагаете, что Flash или Silverlight будут лучше. – finnw
Простое исполнение. Все взаимодействие JavaScript и Java-апплетов немного медленнее, так как это делается много раз в секунду, пока вы играете вокруг меняющихся цветов. –
Если узкое место находится в передаче сообщений между JavaScript и апплетами, то я подозреваю, что замена Java на Flash или Silverlight не имеет значения. Но если вы в настоящее время используете [ColorSpace.fromCIEXYZ] (http://download.oracle.com/javase/6/docs/api/java/awt/color/ColorSpace.html#fromCIEXYZ (float [])) и связанные с ним методы на отдельные пиксели - Хорошо, что * * медленно. В Java реализованы более быстрые реализации (которые могут быть быстрее, чем JS или Flash.) – finnw