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

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

0
nl ja de

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. Однако я не пробовал.

0
добавлено
Вы знаете, могу ли я импортировать конкретный профиль ICC в «mscms» для преобразования этих цветов. Я знаю, что это возможно в LittleCMS, но я никогда не работал с ссылками pInfoke.
добавлено автор Maxim, источник

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

0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot