Если вы хотите хороший результат, вам нужно применить цветовой профиль. В .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, для этого есть специальные классы в одном и том же пространстве имен.