CMYK カラーを RGB に変換する際に問題があります。インターネットには変換する式がたくさんありますが、たとえば、CMYK (0,100,100,0) を RGB に変換すると、値 (255 0 0) が得られますが、Adobe Photoshop RGB 値は (237,28,36) であり、これです。Javaまたは.NETで変換する方法を知っている人はいますか?
4 に答える
同じことを尋ねる他の質問があります:
- https://stackoverflow.com/questions/tagged/rgb+cmyk
- indesign でプログラムによって CMYK を RGB に変換する方法
- RGB カラーを CMYK に変換しますか?
問題の一般的な要点は、Photoshop がカラー プロファイルを適用していることですが、直接変換を行っているだけです。私はこの質問に死ぬほど答えたような気がするので、他のいくつかの質問に対する私の回答を見てください.
良い結果が必要な場合は、カラー プロファイルを適用する必要があります。.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);
2 つの異なる名前空間の 2 つの異なるColorクラスが使用されていることに注意してください。おそらく、PresentationCore DLL を参照として追加する必要があります。
必要なカラー プロファイルは、 eci.orgのダウンロード セクションからダウンロードできます。これは、複数のプロファイルを含む大きな ZIP ファイルの一部です。ISO Coated v2 300% (ECI)プロファイルの使用を明示的に推奨しています。
カラー プロファイルを使用したCMYK から RGB への色変換を示すすばらしい Web サイトがあります。
完全なイメージを CMYK から RGB に変換する必要がある場合、同じ名前空間にこのための特別なクラスがあります。
ColorJizzは、RGB から CMYK およびその他の多くの形式に変換できます。そこには.NETバージョンがあります。