CMYK 2 RGB Проблема - PullRequest
       12

CMYK 2 RGB Проблема

2 голосов
/ 20 апреля 2010

У меня проблема с преобразованием цвета CMYK в RGB. В Интернете есть много формул для его преобразования, но, например, когда я конвертирую CMYK (0,100,100,0) в RGB, он получает значение (255 0 0), но в Adobe Photoshop значение RGB равно (237,28,36), и я хочу этот. Кто-нибудь знает, как конвертировать его с помощью Java или .NET?

Ответы [ 4 ]

4 голосов
/ 20 апреля 2010

Есть и другие вопросы, задающие то же самое:

Общая суть вашей проблемы заключается в том, что Photoshop применяет цветовой профиль, когда вы просто делаете прямое преобразование. Пожалуйста, посмотрите мои ответы на некоторые другие вопросы, так как я чувствую, что я ответил на этот вопрос до смерти.

2 голосов
/ 10 декабря 2010

Если вы хотите хороший результат, вам нужно применить цветовой профиль. В .NET вы можете сделать это следующим образом (при условии, что исходные компоненты CMYK находятся в диапазоне от 0 до 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);

Обратите внимание, что используются два разных Color класса из двух разных пространств имен. И вам, вероятно, нужно добавить DLL PresentationCore в качестве ссылки.

Необходимый цветовой профиль можно загрузить в разделе загрузок eci.org . Это часть большого ZIP-файла, содержащего несколько профилей. Они настоятельно рекомендуют использовать профиль ISO Coated v2 300% (ECI) .

Есть хороший веб-сайт, показывающий преобразование цветов CMYK в RGB с цветовым профилем в работе.

Если вам нужно преобразовать полный образ из CMYK в RGB, для этого есть специальные классы в одном и том же пространстве имен.

0 голосов
/ 12 августа 2015

если вы хотите конвертировать в cmyk в Photoshop, используйте библиотеку изображений JDeli java; есть класс EnumeratedSpace, который делает эту работу за вас;

пожалуйста, не забудьте битовую маску, потому что возвращаемые значения являются байтами RGB

0 голосов
/ 12 октября 2010

ColorJizz может конвертировать из RGB в CMYK и многие другие форматы. Там есть версия .NET.

...