1

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 のアルファ値は何になりますか?

誰でもこれらの問題を解決するのを手伝ってもらえますか...よろしくお願いします。

4

5 に答える 5

5

最後の質問に答えるには:

アルファが RGB 色空間で 1 の場合、CMYK 色空間では 1 になります。両方のスペースは、透明度ではなく、色を指定しているだけです。

CMYK から RGB への変換の問題については、次の点に注意してください。

CMYK モデルと RGB モデルの間に正確な変換はありません。両方の色空間が異なる色域をカバーしています。

ソース

このウィキペディアのページにも議論があります

于 2010-04-19T13:53:37.367 に答える
2

色は主観的です。

CMYK を RGB に変換する場合、あなたが見つけてコードを持っているように見える直接変換式があります。ただし、精度が高すぎます。

CMYK から RGB に変換する場合color profile、CMYK インクが配置されるデバイスと素材を記述する を使用する必要があります。

したがって:

  1. あなたはimage.tifCMYK画像です。
  2. その画像の出力デバイスを記述した ICC プロファイルを適用する必要があります。(つまりUSWebCoatedSWOP.icc、コーティングされた基材を使用してフレキソ印刷機で作成される画像用。)

これらの手順に従うと、適切な色の画像と「正しい」RGB 値が得られます。

したがって、その知識を状況に適用するには、ICC プロファイルをプログラムで適用する必要があります。

自分で計算を行うことに固執する場合 (これは避けることをお勧めします!!! )、 ICC Web サイトですべてを読むか、 LittleCMSを使用して自分で何かをコーディングすることができます。

COM ベースのプログラミング インターフェイスが InDesign を通じて公開されているとは思えません。ただし、Photoshop、Illustrator、および Acrobat はすべて、いくつかの COM ベースの API を公開しています。

Adobe の公開 API 呼び出しを使用してこれが可能かどうかはわかりませんが、CorelDRAW を介してプログラムでこれを行うことは可能であると言えます。

編集: どうやら、InDesign には自動化機能がありますが、プログラムでカラー プロファイルを適用する機能が見つかりませんでした。セクション (1.5.9. 色) を参照してください。

于 2010-04-19T14:22:37.730 に答える
2

あなたが持っているのは 4 つの数字 (CMYK の場合) だけで、そこから 3 つの数字 (RGB の場合) を導出したいと考えています。

残念ながら、あなたの数字はまさにそれです-数字です。色を指定するには、4 倍または 3 倍以上が必要です。それを行う方法はいくつかありますが、最も広く使用されているのは、色空間、プロファイル接続空間、レンダリング インテント、照明条件などの概念を使用して、ICC アーキテクチャ (www.color.org を参照) に関連付けられています。非常に簡単に言えば、元の CMYK 数値を特徴付けるソース プロファイルと、4 つの数値から派生させたい RGB の宛先プロファイルが必要です。次に、ICC ベースの色変換テクノロジ (オープン ソースの LittleCMS ライブラリ、または Mac OS、Windows OS、またはさまざまな Adob​​e 製品に組み込まれている同様の機能など) を使用して変換を実行できます。

他の場所で見つかった動作に一致させたいようです-その「他の場所で見つかった動作」がどのように機能しているかを十分に把握しない限り、正確に一致するアプローチを考え出すことは非常に困難です。残念ながら、これらの「動作」の多くは、大幅に指定されていないか、文書化されていません。

なぜそのようなことをしているのか、その理由を詳しく説明できれば、より有益な提案を思いつくことができるかもしれません。

于 2012-06-25T14:46:57.487 に答える
1

InDesign スクリプトを使用している場合、なぜ自分で色を変換したいのでしょうか? InDesign に依頼してください。

app.colorTransform (ソースの色空間、ソースの色空間、宛先の色空間の数値の配列);

上記のコードは、目的の色空間で色を表す数値の配列を返します。 これを試してみてください。

于 2018-07-03T16:52:58.243 に答える