如何在indesign中以编程方式将CMYK转换为RGB

SWD*_*per 1 java rgb cmyk adobe-indesign

我在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;
Run Code Online (Sandbox Code Playgroud)
@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);
}
Run Code Online (Sandbox Code Playgroud)

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值是多少?

任何人都可以帮我解决这些问题......提前谢谢.

Chr*_*isF 5

回答你的上一个问题:

如果在RGB颜色空间中alpha为1,则在CMYK颜色空间中为1.两个空格都只是指定颜色,而不是透明度.

在您的CMYK到RGB转换问题上,您应该注意到这一点

CMYK和RGB模型之间没有精确的转换 - 两个颜色空间都覆盖不同的色

资源

这个维基百科页面上也有讨论