c # Преобразование цвета CMYK в Cielab или RGB в Cielab с использованием профиля ICC

Я хочу использовать профиль .icc "ISOnewspaper26v4.icc" в C #! Но теперь у меня проблема ... Я не знаю, как преобразовать цвета CMYK в значения Lab или RGB в значения Lab с помощью этого профиля ICC ?? !! Как мне назначить профиль ??


person Maxim    schedule 07.02.2013    source источник


Ответы (2)


Насколько мне известно, 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. Но я не пробовал.

person Codo    schedule 09.02.2013
comment
Вы знаете, могу ли я импортировать определенный профиль ICC в mscms для преобразования этих цветов. Я знаю, что в LittleCMS это возможно, но я никогда не работал со ссылками на pInfoke. - person Maxim; 28.02.2013

Должна быть возможность «конвертировать» в CIE Lab с помощью профиля ICC Lab space. Раньше у AGFA был такой. В противном случае нужно было бы написать процедуру для ручного выполнения преобразования вне ICM через тег A2B0 для выходного профиля. Помните, что профиль ISOnewspaperv4 ненадежен.

person Roger Breton    schedule 17.07.2014