2

I have a problem with converting a CMYK Color to RGB. In the internet there is many formulas to convert it but for example when I convert CMYK (0,100,100,0) to RGB, it get value (255 0 0) but in Adobe Photoshop RGB value is (237,28,36) and I want this one. Is anybody know how to convert it with java or .NET?

4

4 回答 4

4

还有其他问题问同样的事情:

您的问题的一般要点是 Photoshop 正在应用颜色配置文件,因为您只是在进行直接转换。请查看我对其他一些问题的回答,因为我觉得我已经回答了这个问题。

于 2010-04-20T16:22:03.793 回答
3

如果您想要好的结果,您需要应用颜色配置文件。在 .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);

请注意,使用了来自两个不同名称空间的两个不同颜色类。您可能需要添加PresentationCore DLL 作为参考。

可以从eci.org的下载部分下载所需的颜色配置文件。它是包含多个配置文件的较大 ZIP 文件的一部分。他们明确建议使用ISO Coated v2 300% (ECI)配置文件。

有一个不错的网站展示了CMYK 到 RGB 颜色转换以及颜色配置文件在工作中。

如果您需要将完整的图像从 CMYK 转换为 RGB,则在同一命名空间中有专门的类。

于 2010-12-10T19:05:25.453 回答
0

如果你想要像 cmyk 转换的 Photoshop,那么使用 JDeli java 图像库;有一个名为 EnumeratedSpace 的类可以为您完成这项工作;

请不要忘记位掩码,因为返回值是 rgb 字节

于 2015-08-12T12:35:00.480 回答
-1

ColorJizz可以从 RGB 转换为 CMYK 和许多其他格式。那里有一个 .NET 版本。

于 2010-10-12T12:54:48.990 回答