0

C#で.iccプロファイル「ISOnewspaper26v4.icc」を使いたい!この ICC プロファイルを使用して、CMYK カラーを Lab 値に、または RGB を Lab 値に変換する方法がわかりません ??!! プロファイルを割り当てるにはどうすればよいですか??

4

2 に答える 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 に答える