C#で.iccプロファイル「ISOnewspaper26v4.icc」を使いたい!この ICC プロファイルを使用して、CMYK カラーを Lab 値に、または RGB を Lab 値に変換する方法がわかりません ??!! プロファイルを割り当てるにはどうすればよいですか??
質問する
2143 次
2 に答える
0
私の知る限り、C# および関連するライブラリには、CMYK または RGB を Lab に変換する関数は含まれていません。CMYK を RGB に変換するための関数が含まれています (この回答を参照してください)。
Windows API には、異なるカラー システム間で変換する機能があるようです。少なくともRGBからCMYKへの変換には機能します(この回答を参照してください)。
おそらく次の拡張機能が必要です。
[StructLayout(LayoutKind.Sequential)]
public struct LabCOLOR
{
public ushort L;
public ushort a;
public ushort b;
public ushort pad;
};
[DllImport("mscms.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
static extern bool TranslateColors(
IntPtr hColorTransform,
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), In] RGBColor[] inputColors,
uint nColors,
ColorType ctInput,
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] LABColor[] outputColors,
ColorType ctOutput);
次に、「cmyk」を「lab」に置き換えて、RGBからLabカラーに変換できるはずです。私はそれを試していません。
于 2013-02-09T09:21:51.473 に答える