2010-04-20 7 views
2

J'ai un problème avec la conversion d'une couleur CMJN en RVB. Sur Internet il y a beaucoup de formules pour le convertir mais par exemple quand je convertis CMYK (0,100,100,0) en RGB, il obtient la valeur (255 0 0) mais dans la valeur d'Adobe Photoshop RVB est (237,28,36) et je veux celui-ci. Est-ce que quelqu'un sait comment le convertir avec Java ou. NET?Problème CMJN 2 RVB

Répondre

-1

ColorJizz peut convertir de RGB en CMJN et de nombreux autres formats. Il y a une version .NET là-dedans.

1

Si vous voulez un bon résultat, vous devez appliquer un profil de couleur. Dans .NET, vous pouvez le faire comme ça (en supposant que les composants CMJN d'origine sont compris entre 0 et 255):

float[] colorValues = new float[4]; 
colorValues[0] = c/255f; 
colorValues[1] = m/255f; 
colorValues[2] = y/255f; 
colorValues[3] = k/255f; 

System.Windows.Media.Color color = Color.FromValues(colorValues, 
    new Uri(@"C:\Users\me\Documents\ISOcoated_v2_300_eci.icc")); 
System.Drawing.Color rgbColor = System.Drawing.Color.FromArgb(color.R, color.G, color.B); 

Notez que deux différentes couleurs classes de deux espaces de noms différents sont utilisés. Et vous avez probablement besoin d'ajouter la DLL PresentationCore comme référence.

Le profil de couleur requis peut être téléchargé à partir de la section des téléchargements de eci.org. Cela fait partie d'un fichier ZIP plus volumineux contenant plusieurs profils. Ils recommandent explicitement d'utiliser le profil ISO Coated v2 300% (ECI).

Il ya un joli site Web montrant le CMYK to RGB color conversion avec le profil de couleur au travail.

Si vous avez besoin de convertir une image complète de CMJN en RVB, il existe des classes spéciales pour cela dans le même espace de noms.

0

si vous souhaitez une conversion de photoshop comme cmyk, utilisez la bibliothèque d'images JDeli java; il y a une classe appelée EnumeratedSpace qui fait le travail pour vous; S'il vous plaît ne pas oublier de masque de bit parce que les valeurs de retour sont rgb bytes