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