2011-01-16 7 views
9

Esiste una tecnologia disponibile in un browser (lato client) in grado di convertire i colori sRGB in CMYK e viceversa utilizzando un profilo colore ICC specificato?Esiste una tecnologia lato client in grado di convertire sRGB in CMYK attraverso un profilo colore ICC?

Attualmente sto utilizzando un'applet Java nascosta per le conversioni (Java ha una classe integrata per questo), ma sto cercando di trovare un'alternativa, poiché le applet java sono lente e obsolete.

SVG sarebbe l'ideale se i browser supportati ICC colors in SVG, ma nessuno lo fa. Anche Flash o Silverlight sarebbero buoni, ma non trovo nulla di rilevante.

+0

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

+0

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. –

+0

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

risposta

4

Sono corretto nel pensare che si desidera utilizzare il profilo ICC del dispositivo di visualizzazione?

Sono quasi certo che non è possibile determinare il profilo ICC del dispositivo di visualizzazione utilizzando javascript. Nella migliore delle ipotesi potrebbe essere possibile in un ambiente di terze parti come Flash. La matematica in sé non sarebbe un problema.

Naturalmente, questo è tutto davvero la responsabilità del browser web. Firefox ha un supporto abbastanza buono per la gestione del colore. Se non sbaglio, Microsoft si occuperà della gestione del colore in IE9.

+0

Anche fornire il profilo colore per RGB attraverso un file. Sto già utilizzando un file per CMYK. Non ne ho bisogno per immagini complete, solo colori particolari (per un selettore di colori). Flash andrebbe bene, considerando che sto usando un'applet Java nascosta ora, che è molto peggio. –

+0

@Lea: questo potrebbe cambiare le cose. Puoi indicarmi un esempio di come stai effettivamente usando l'applet? Anche il codice è ok. –

+0

http://coloratum.com È ancora un po 'buggato e lento perché non l'ho ancora rilasciato. Visualizza con un browser moderno. –

2

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).

+0

È per un selettore di colori. Voglio che la conversione RGB CMYK <-> sia la stessa che molti utenti sono abituati da Photoshop, quando usa il suo profilo colore predefinito (che è anche più vicino a qualsiasi realtà stampata rispetto agli ingenui algoritmi di conversione RGB CMYK <-> che vengono eseguiti senza un profilo colore su tutti). –

+0

Predefinito, come in US Web Coated SWOP v2? Questo è il mio spazio di lavoro predefinito CMYK; Penso che sia stato il default dal momento che almeno la prima versione di "Creative Suite". Potrebbe essere stato prima, ma non ho usato la gestione del colore prima dell'avvento di CS, quindi non lo so. – fish2000

+0

... Sono d'accordo sul fatto che la maggior parte delle ingenue funzioni di conversione da CMYK a RGB sono strumenti orribilmente contundenti ma (a rischio di sembrare pedante) la realtà stampata, per molte persone, non è necessariamente SWOP ... quando si stampa carta inkjet, la maggior parte dei inkjet contemporanei ha gamut che sono molto più vicini a sRGB di una macchina da stampa CMYK, per esempio. – fish2000

Problemi correlati