C# 使用ICC配置文件将CMYK颜色转换为Cielab或RGB颜色转换为Cielab
我想在C#中使用.icc配置文件“ISOnewspaper26v4.icc”! 但是我现在有个问题。。我不知道如何使用此ICC配置文件将CMYK颜色转换为实验室值或将RGB转换为实验室值??!!如何分配配置文件 据我所知,C#和相关库不包含任何用于将CMYK或RGB转换为Lab的函数。这些库包含用于将CMYK转换为RGB的函数(请参见此) Windows API似乎具有在不同颜色系统之间转换的功能。它至少适用于将RGB转换为CMYK(参见此) 您可能需要执行以下扩展:C# 使用ICC配置文件将CMYK颜色转换为Cielab或RGB颜色转换为Cielab,c#,colors,rgb,cmyk,color-profile,C#,Colors,Rgb,Cmyk,Color Profile,我想在C#中使用.icc配置文件“ISOnewspaper26v4.icc”! 但是我现在有个问题。。我不知道如何使用此ICC配置文件将CMYK颜色转换为实验室值或将RGB转换为实验室值??!!如何分配配置文件 据我所知,C#和相关库不包含任何用于将CMYK或RGB转换为Lab的函数。这些库包含用于将CMYK转换为RGB的函数(请参见此) Windows API似乎具有在不同颜色系统之间转换的功能。它至少适用于将RGB转换为CMYK(参见此) 您可能需要执行以下扩展: [StructLa
[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颜色。不过我还没有试过。在实验室空间ICC配置文件的帮助下,应该可以“转换”到CIE实验室。AGFA过去有一个。否则,必须编写一个例程,在ICM之外,通过A2B0标记手动转换输出配置文件。注意,ISOnewspaperv4配置文件是财务问题。Du您知道,我是否可以在“mscms”中导入特定的ICC配置文件以转换此颜色。我知道这在LittleCMS中是可能的,但我从未与pInfoke的推荐人合作过。