Dopo aver letto la tua domanda, non posso decidere se:
a. stai tentando di eseguire un'operazione a prova di errore o
b. si sta costruendo un tipo color picker di app, e si desidera fornire agli utenti con i nomi di alcuni colori (ad esempio da pantone o NCS o somesuch) quando si visualizza il loro sRGB valore approssimazioni, o
c. qualcos'altro interamente.
Qual è lo spazio CMYK che ti interessa? Se stai facendo l'opzione (a) - soft proofing - puoi probabilmente adattare le curve ai LUT nel profilo CMYK, e usarli per capire una trasformazione 'shortcut' che puoi quindi eseguire nel non-ICC- il runtime javascript attivo in cui lavori. La maggior parte dei profili CMYK esegue la conversione con LUT e molti utilizzano i valori ICC4 NamedColor2 (che potresti conoscere come valore nei tag ICC 'ncl2').
Se questo è il caso, posso puntare ad alcune risorse su come fare questo - sto facendo io stesso utilizzando SciPy in python django-gestione del colore dell'immagine-analisi piattaforma di app cosa sto lavorando.
Se si sta utilizzando l'opzione (b) e sono necessari i nomi dei colori, è possibile estrarre i nomi necessari dal profilo CMYK (molto probabilmente i valori di NamedColor2) e creare una tabella di ricerca, che è quindi possibile serializzare su JSON in modo che tu possa caricarlo nella tua app. Se la tua app deve avere una certa conoscenza dello spazio di visualizzazione, è probabile che l'utente "calibra" la tua app per la loro visualizzazione - forniscigli alcune domande che ti consentiranno di calcolare l'offset del punto bianco (e probabilmente il RGB XYZ tristimulii) e poi magari creare una trasformazione rapida (che potrebbe essere semplice come una trasformazione cromatica di adattamento che sto indovinando) che poi applichi ai valori di colore che vuoi "color gestire" prima di visualizzarli.
a fare lo trasforma senza un sistema CMS, la matematica di Bruce Lindbloom è un buon punto di partenza:
http://www.brucelindbloom.com/
se è c) Sono molto curioso di sapere di cosa si tratta.
è utile? Posso elaborare e/o fornire codice di esempio, & c, se si integra la domanda (sto lavorando in un dominio con problemi simili, quindi potremmo vincere entrambi).
Il mio suggerimento è che si rimane con la soluzione Java, poiché non c'è niente di sbagliato in esso. Non capisco perché vuoi sostituirlo, o perché pensi che Flash o Silverlight sarebbero migliori. – finnw
Solo prestazioni. L'intera interazione di JavaScript e applet Java è un po 'lenta poiché viene eseguita molte volte al secondo mentre si gioca a cambiare i colori. –
Se il collo di bottiglia è nel passaggio di messaggi tra JavaScript e l'applet, sospetto che la sostituzione di Java con Flash o Silverlight non farà alcuna differenza. Ma se attualmente stai usando [ColorSpace.fromCIEXYZ] (http://download.oracle.com/javase/6/docs/api/java/awt/color/ColorSpace.html#fromCIEXYZ (float [])) e metodi correlati su singoli pixel - Bene che * è * lento. Esistono implementazioni più veloci in Java (che potrebbero comunque essere più veloci di JS o Flash.) – finnw