我在 indesign 中有一个 CMYK 颜色空间,我想将其转换为 RGB 颜色空间,我得到了一些代码,但我得到的数据不正确。
我尝试过的一些代码如下
double cyan = 35.0;
double magenta = 29.0;
double yellow = 0.0;
double black = 16.0;
cyan = Math.min(255, cyan + black); //black is from K
magenta = Math.min(255, magenta + black);
yellow = Math.min(255, yellow + black);
l_res[0] = 255 - cyan;
l_res[1] = 255 - magenta;
l_res[2] = 255 - yellow;
@Override
public float[] toRGB(float[] p_colorvalue) {
float[] l_res = {0,0,0};
if (p_colorvalue.length >= 4)
{
float l_black = (float)1.0 - p_colorvalue[3];
l_res[0] = l_black * ((float)1.0 - p_colorvalue[0]);
l_res[1] = l_black * ((float)1.0 - p_colorvalue[1]);
l_res[2] = l_black * ((float)1.0 - p_colorvalue[2]);
}
return (l_res);
}
CMYK 颜色空间中的值是 C=35、M = 29、Y = 0、K = 16,正确的 RGB 值是 R = 142、G = 148、B = 186。
在 adobe indesign 中,我们可以使用色板将模式更改为 CMYK 或 RGB。
但我想以编程方式做到这一点,我可以得到任何将 CMYK 转换为 RGB 的算法,这将给出正确的 RGB 值。
还有一个问题,如果 RGB 的 alpha 值为 1,那么 CMYK 的 alpha 值是多少?
谁能帮我解决这些问题...在此先感谢。