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 に変更できます。
しかし、私はそれをプログラムで行いたいのですが、正しいRGB値を与えるCMYKをRGBに変換するアルゴリズムを入手できますか?
もう 1 つの質問です。RGB のアルファ値が 1 の場合、CMYK のアルファ値は何になりますか?
誰でもこれらの問題を解決するのを手伝ってもらえますか...よろしくお願いします。